CSS - Verwenden von calc() zu halten, die breiten der Elemente, die der gleichen
Ist so etwas möglich in CSS?
<table>
<tr>
<td id="elementOne">elementOne</td>
<td id="elementtwo">elementtwo</td>
</tr>
</table>
<div style="width: calc(document.getElementById(elementOne).width)"></div>
So, dass das div-Element immer die gleiche Breite wie elementOne
.
Gibt es so eine Funktion in CSS, mit calc() oder eine andere Möglichkeit?
- Nein, es ist nicht so feature (AFAIK sowas wurde unterstützt in IE - bis zum version 7), aber Sie haben einen noch leistungsfähigeren feature: JavaScript.
- Das nannte sich
expression()
im IE, und es war eine schlechte Idee: stackoverflow.com/questions/527861/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, es ist nicht möglich, mit CSS.
Für die, die Sie haben, JavaScript zu verwenden (
document.getElementById(elementOne).offsetWidth
oder ähnlich, je nach genau das, was Breite Sie sind auf der Suche nach). Calc ist verwendet Mathematik zu tun, nicht ausführen von Skripts. Es gibt keine Möglichkeit der Umsetzung JS in eine CSS-Anweisung, wie Sie zu tun versuchen.Für weitere Hilfe auf die JS-bit, siehe Wie Kriege ich ein HTML-element, wird die tatsächliche Breite und Höhe?
Edit: Für einige Hintergrundinformationen, warum dies wäre eine schlechte Idee, das ganze in CSS, se Wert-Berechnung für CSS (TL;DR: Es wurde versucht. Dinge, die explodiert ist)
Verwendung von CSS-Variablen:
Können Sie auch Variablen verwenden, die in die calc () - Funktion:
Ja. Es gibt 2 mögliche Wege dies zu tun, mit CSS (wenn auch nicht mit calc):
1) Wenn Sie wissen, wie viele Spalten, die Sie haben, dann benutzen Sie einfach % (d.h. 50% für 2 cols)
2) Wenn Sie nicht wissen, wie viele Spalten Sie haben, oder Sie vielleicht nicht verwenden können % für was auch immer verwenden-Fall Sie möglicherweise haben, dann können Sie flexbox.
Je nach Ihren browser-Kompatibilität Ziel, kombinieren Sie die "alt" und "neu" - syntax, um einige tolle Ergebnisse.