Traduzione di un elemento L'asse Y 50% lo sposterà verso il basso del 50% della sua altezza, non del 50% dell'altezza dei genitori come mi aspetterei. Come faccio a dire a un elemento di traduzione di basare la sua percentuale di traduzione sull'elemento genitore? O non capisco qualcosa?Traduci i valori percentuali X e Y in base all'altezza e alla larghezza degli elementi?
risposta
Per utilizzare percentuale nella proprietà tradurre, è necessario utilizzare Javascript: codice http://jsfiddle.net/4wqEm/27/
HTML:
<div id="parent">
<div id="children"></div>
</div>
codice CSS:
#parent {
width: 200px;
height: 200px;
background: #ff0;
}
#children {
width: 10%;
height: 10%;
background: #f00;
}
codice Javascript :
parent = document.getElementById('parent');
children = document.getElementById('children');
parent_height = parent.clientHeight;
children_translate = parent_height * 50/100;
children.style.webkitTransform = "translateY("+children_translate+"px)";
Spero di poterti aiutare e dirmi se hai altri problemi.
Quando si utilizza la percentuale in translate, si riferisce alla larghezza o all'altezza di se stesso. Date un'occhiata a https://davidwalsh.name/css-vertical-center (demo):
Una cosa interessante di CSS trasforma è che, quando si applica loro con valori percentuali, essi basano tale valore sulle dimensioni dell'elemento cui sono in corso di attuazione su, a differenza a proprietà come top, right, bottom, left, margin e padding, che usano solo le dimensioni del genitore (o in caso di posizionamento assoluto, che usa il parente relativo più prossimo).
Questa dovrebbe essere la risposta accettata. Grazie! – Aron
È inoltre possibile utilizzare un blocco in più e utilizzare la transizione per se non il nodo figlio
codice HTML:
<div id="parent">
<div id="childrenWrapper">
<div id="children"></div>
</div>
</div>
css dovrebbe essere qualcosa di simile
#parent {
position: relative;
width: 200px;
height: 200px;
background: #ff0;
}
#childrenWrapper{
width: 100%;
height: 100%;
}
#children {
width: 10%;
height: 10%;
background: #f00;
}
È possibile rendere l'elemento posizionato in modo assoluto e utilizzare la proprietà left e top per ottenere il valore percentuale come padre.
La tua affermazione ha assolutamente ragione sulle percentuali che provengono dall'elemento molto tradotto. Invece di usare la proprietà translate nel tuo caso, dovresti usare il posizionamento assoluto per rimanere relativo al div padre. Ho assolutamente posizionato verticalmente il tuo div rosso qui: (non dimenticare di aggiungere la posizione relativa al div genitore.Deve essere posizionato diverso da quello predefinito statico):
body {
margin: 0;
width: 100%;
height: 100%;
}
body > div {
width: 200px;
height: 200px;
background: #ff0;
position: relative;
}
body > div > div {
width: 10%;
height: 10%;
-webkit-transform: translateY(-50%);
background: #f00;
position: absolute;
top: 50%;
}
Ma l'animazione superiore e sinistra non è accelerata dall'hardware, vero? – trusktr
È possibile utilizzare vw e VH di tradurre in base alle dimensioni viewport
@keyframes bubbleup {
0% {
transform: translateY(100vh);
}
100% {
transform: translateY(0vh);
}
}
Ciò che funziona per me utilizzando only CSS è :
.child {
position: relative;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
/* Backward compatibility */
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
}
Come funziona:
- Posiziona in alto e a sinistra sposta il widget figlio in base alle coordinate padre. L'angolo in alto a sinistra del widget figlio apparirà esattamente al centro del genitore (questo non è ciò che vogliamo in questo momento).
- traslazione sposta il widget figlio -50% in alto a sinistra in base alla sua dimensione (non al padre). Significa che il widget verrà spostato esattamente al centro di se stesso.
- 1. Altezza relativa e larghezza ma posizione assoluta x, y
- 2. Come ricalcolare le coordinate x, y in base alla schermata
- 3. SQL - trovare la riga con i valori di due colonne più vicini alla X e Y
- 4. Differenza tra x | y e y <(x) in bash?
- 5. Linq TakeWhile in base alla somma (o all'aggregato) degli elementi
- 6. Query media di elementi CSS e larghezza degli elementi
- 7. Ottieni le coordinate x e y reali degli utenti toccate
- 8. jQuery selezionare gli elementi con valore tra X e Y
- 9. Striatura di ruby: x == y && [x, y] .uniq == [x, y]
- 10. In C/C++ è x [i] * y [i ++] sempre uguale a x [i] * y [i]
- 11. Combinazioni di tre numeri positivi x, y, z in modo che x + y, x - y, y + z, y - z, x + z e x - z siano quadrati perfetti
- 12. I valori X e Y negli eventi di trascinamento HTML5 sono incoerenti tra i browser
- 13. Grafico visibile all'esterno dell'asse X e Y
- 14. Recupero valori percentuali CSS (in firefox)
- 15. Libreria di grafici JavaScript con più assi X e Y e valori di asse negativi
- 16. altezza e larghezza su elementi HTML e corpo
- 17. Youtube oembed: come calcola i valori di "larghezza" e "altezza"?
- 18. Qual è la differenza in R tra identico (x, y) e isTRUE (all.equal (x, y))?
- 19. Leggere la stringa in formato xml e ottenere i valori degli elementi in java
- 20. Ruota X, Y e Z tutti insieme
- 21. css background-repeat x e y
- 22. WPF: Posso impostare la larghezza di un elemento in base alle percentuali?
- 23. Perché/Quando in Python `x == y` chiama` y .__ eq __ (x) `?
- 24. Come posso ritagliare l'immagine in php con le coordinate date di X, Y, Larghezza e Altezza
- 25. x, y = getPos() vs. (x, y) = getPos()
- 26. Larghezza cella dinamica di UICollectionView in base alla larghezza dell'etichetta
- 27. differenza tra * y ++ e ++ * y?
- 28. Minimizzazione di f (x, y) dove x e y sono interi
- 29. LayoutManager per RecyclerView per impostare automaticamente il numero di colonne in base alla larghezza degli articoli
- 30. x-y = x + 1 + ¬y problema
Va bene, sembra che non ci sia modo di aggirarlo. La traduzione CSS per percentuale prende la% dell'elemento che viene tradotto per calcolare la distanza da spostare. Non si comporta come una tipica dichiarazione CSS come top, margin-top o padding-top, che sono tutti basati sul contenitore genitore. –
Grazie, non mi è stato immediatamente chiaro quale fosse il valore percentuale in percentuale. –
La prossima cosa sapete, faranno percentuali significa anche la percentuale della dimensione del font! (oh ...) –