<script>
var para = document.body.getElementsByTagName("p")[0];
console.log("clientHeight:", para.clientHeight);
console.log("offsetHeight:", para.offsetHeight);
</script>
Π‘Π°ΠΌΡΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ·Π½Π°ΡΡ ΡΠΎΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π½Π° ΡΠΊΡΠ°Π½Π΅ β ΠΌΠ΅ΡΠΎΠ΄ getBoundingClientRect. ΠΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ top, bottom, left, ΠΈ right (ΡΠ²Π΅ΡΡ Ρ, ΡΠ½ΠΈΠ·Ρ, ΡΠ»Π΅Π²Π° ΠΈ ΡΠΏΡΠ°Π²Π°), ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° ΡΠΊΡΠ°Π½Π° Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ . ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΡΠΈΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ pageXOffset ΠΈ pageYOffset.
Π Π°Π·Π±ΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° β Π·Π°Π΄Π°ΡΠ° ΡΠ»ΠΎΠΆΠ½Π°Ρ. Π ΡΠ΅Π»ΡΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΡΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° ΠΆΠ΄ΡΡ ΡΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° JavaScript, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ, Π±ΡΠ°ΡΠ·Π΅ΡΡ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π½Π° ΡΠΊΡΠ°Π½. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ, ΡΠΈΡΠ°Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠΈΠΏΠ° offsetHeight ΠΈΠ»ΠΈ Π²ΡΠ·ΡΠ²Π°Ρ getBoundingClientRect, Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΎΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΡ DOM ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ DOM, Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π· ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΡ, ΠΈ Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΅ΡΡΡ Π΄Π²Π΅ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠΎΡΡ Π»ΠΈΠ½ΠΈΡ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² X ΡΠΈΡΠΈΠ½ΠΎΠΉ Π² 2000 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΠΈ ΠΈΠ·ΠΌΠ΅ΡΡΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ.
<span id="one"></span>
<span id="two"></span>
<script>
function time(name, action) {
var start = Date.now(); // Π’Π΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
action();
console.log(name, "Π·Π°Π½ΡΠ»ΠΎ", Date.now() - start, "ms");
}
time("ΡΡΠΏΠΎ", function() {
var target = document.getElementById("one");
while (target.offsetWidth < 2000)
target.appendChild(document.createTextNode("X"));
});
// β ΡΡΠΏΠΎ Π·Π°Π½ΡΠ»ΠΎ 32 ms
time("ΡΠΌΠ½ΠΎ", function() {
var target = document.getElementById("two");
target.appendChild(document.createTextNode("XXXXX"));
var total = Math.ceil(2000 / (target.offsetWidth / 5));
for (var i = 5; i < total; i++)
target.appendChild(document.createTextNode("X"));
});
// β ΡΠΌΠ½ΠΎ Π·Π°Π½ΡΠ»ΠΎ 1 ms
</script>
Π‘ΡΠΈΠ»ΠΈ
ΠΡ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ ΡΠ°Π·Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ HTML Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π±Π»ΠΎΠΊΠΎΠ², Π΄ΡΡΠ³ΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, <strong> Π΄Π΅Π»Π°Π΅Ρ ΠΆΠΈΡΠ½ΡΠΌ ΡΠ΅ΠΊΡΡ ΠΈ <a> Π΄Π΅Π»Π°Π΅Ρ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ΄ΡΡΡΠΊΠ½ΡΡΡΠΌ ΠΈ ΡΠΈΠ½ΠΈΠΌ.
ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Π² ΡΠ΅Π³Π΅ <img> ΠΈΠ»ΠΈ ΡΠΎ, ΡΡΠΎ ΡΡΡΠ»ΠΊΠ° Π² ΡΠ΅Π³Π΅ <a> ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π½ΠΎΠ²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠΈΠΏΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ, Π²ΡΠΎΠ΄Π΅ ΡΠ²Π΅ΡΠ° ΡΠ΅ΠΊΡΡΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΡ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° style (ΡΡΠΈΠ»Ρ):
<a href=".">ΠΠ±ΡΡΠ½Π°Ρ ΡΡΡΠ»ΠΊΠ°</a>
<a href="." style="color: green">ΠΠ΅Π»ΡΠ½Π°Ρ ΡΡΡΠ»ΠΊΠ°</a>
ΠΡΡΠΈΠ±ΡΡ style ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΡΠ²ΠΎΠΉΡΡΠ² (color), Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΎΠ½ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ ΡΠΎΡΠΊΠΎΠΉ Ρ Π·Π°ΠΏΡΡΠΎΠΉ: βcolor: red; border: noneβ.
ΠΠ½ΠΎΠ³ΠΎ Π²ΡΡΠΊΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠΈΠ»Π΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ display ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² Π±Π»ΠΎΡΠ½ΠΎΠΌ ΠΈΠ»ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
Π’Π΅ΠΊΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ <strong>Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ</strong>,
<strong style="display: block">Π² Π²ΠΈΠ΄Π΅ Π±Π»ΠΎΠΊΠ°</strong>, ΠΈ
<strong style="display: none">Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π²ΠΈΠ΄Π΅Π½</strong>.
ΠΠ»ΠΎΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ, Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π²ΠΈΠ΄Π΅Π½ β display: none ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠΊΠ°Π· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΡΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΡ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΡ Π»Π΅Π³ΡΠ΅ ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ½ΠΎΠ²Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΡ.
ΠΠΎΠ΄ JavaScript ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠΈΠ»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠ΅ΡΠ΅Π· ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ·Π»Π° style. Π Π½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ² ΡΡΠΈΠ»Π΅ΠΉ. ΠΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ β ΡΡΡΠΎΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ Π΄Π»Ρ ΡΠΌΠ΅Π½Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π°ΡΠΏΠ΅ΠΊΡΠ° ΡΡΠΈΠ»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
<p id="para" style="color: purple">
ΠΡΠ°ΡΠΎΡΠ΅Π½Ρ
<script>
var para = document.getElementById("para");
console.log(para.style.color);
para.style.color = "magenta";
</script>
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΠ²ΠΎΠΉΡΡΠ² ΡΡΠΈΠ»Π΅ΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π΄Π΅ΡΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ font-family. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌΠΈ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² JavaScript (ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΏΠΈΡΠ°ΡΡ style[Β«font-familyΒ»]), Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΡΡΠΈΠ»Π΅ΠΉ ΠΏΠΈΡΡΡΡΡ Π±Π΅Π· Π΄Π΅ΡΠΈΡΠ°, Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π² Π½ΠΈΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΠΏΠΈΡΠ½ΡΠ΅ Π±ΡΠΊΠ²Ρ: style.fontFamily.
ΠΠ°ΡΠΊΠ°Π΄Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΡΠΈΠ»Π΅ΠΉ Π² HTML Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ CSS (Cascading Style Sheets, ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ). Π’Π°Π±Π»ΠΈΡΠ° ΡΡΠΈΠ»Π΅ΠΉ β Π½Π°Π±ΠΎΡ ΡΡΠΈΠ»Π΅ΠΉ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π²Π½ΡΡΡΠΈ ΡΠ΅Π³Π° <style>:
<style>
strong {
font-style: italic;
color: gray;
}
</style>
Π’Π΅ΠΏΠ΅ΡΡ <strong>ΡΠ΅ΠΊΡΡ ΡΠ΅Π³Π° strong</strong> Π½Π°ΠΊΠ»ΠΎΠ½Π½ΡΠΉ ΠΈ ΡΠ΅ΡΡΠΉ.
Β«ΠΠ°ΡΠΊΠ°Π΄Π½ΡΠ΅Β» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ» ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π° ΡΡΠΈΠ»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ <strong>, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅Π»Π°Π΅Ρ ΡΠ΅ΠΊΡΡ ΠΆΠΈΡΠ½ΡΠΌ, Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΈΠ· ΡΠ΅Π³Π° <style>, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ font-style ΠΈ ΡΠ²Π΅Ρ.
ΠΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ, ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΡΡΠ°ΡΡΡΡ Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ . ΠΡΠ»ΠΈ Π±Ρ ΡΡΠΈΠ»Ρ ΡΠ΅ΠΊΡΡΠ° Π² <style> Π²ΠΊΠ»ΡΡΠ°Π» ΠΏΡΠ°Π²ΠΈΠ»ΠΎ font-weight: normal, ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠ΅Π΅ ΡΠΎ ΡΡΠΈΠ»Π΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΎ ΡΠ΅ΠΊΡΡ Π±ΡΠ» Π±Ρ ΠΎΠ±ΡΡΠ½ΡΠΉ, Π° Π½Π΅ ΠΆΠΈΡΠ½ΡΠΉ. Π‘ΡΠΈΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΡΠ·Π»Ρ ΡΠ΅ΡΠ΅Π· Π°ΡΡΠΈΠ±ΡΡ style, ΠΈΠΌΠ΅ΡΡ Π½Π°ΠΈΠ²ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ.
Π CSS Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ΅Π³ΠΎΠ². ΠΡΠ°Π²ΠΈΠ»ΠΎ Π΄Π»Ρ .abc ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ, Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½ ΠΊΠ»Π°ΡΡ βabcβ. ΠΡΠ°Π²ΠΈΠ»ΠΎ Π΄Π»Ρ \#xyz ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ id ΡΠ°Π²Π½ΡΠΌ βxyzβ (Π°ΡΡΠΈΠ±ΡΡΡ id Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°).
.subtle {
color: gray;
font-size: 80%;
}
#header {
background: blue;
color: white;
}
/* ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ p, Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½Ρ ΠΊΠ»Π°ΡΡΡ a ΠΈ b, Π° id Π·Π°Π΄Π°Π½ ΠΊΠ°ΠΊ main */
p.a.b#main {
margin-bottom: 20px;
}
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ ΡΠ°ΠΌΡΡ ΠΏΠΎΠ·Π΄Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΡΠ°Π²ΠΈΠ» ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°Ρ Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΡΠΎ ΠΌΠ΅ΡΠ° ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ½ΠΎ ΠΎΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ ΡΠΈΡΠ»ΠΎΠΌ ΠΈ Π²ΠΈΠ΄ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΄Π»Ρ p.a Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ, ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ p ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ .a, ΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ.
ΠΠ°ΠΏΠΈΡΡ p > a {...} ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅Π³Π°ΠΌ <a>, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΌΡΡ Π²Π½ΡΡΡΠΈ ΡΠ΅Π³Π°
ΠΈ ΡΠ²Π»ΡΡΡΠΈΠΌΡΡ Π΅Π³ΠΎ ΠΏΡΡΠΌΡΠΌΠΈ ΠΏΠΎΡΠΎΠΌΠΊΠ°ΠΌΠΈ. p a {...} ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅Π³Π°ΠΌ <a> Π²Π½ΡΡΡΠΈ
, ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅Π²Π°ΠΆΠ½ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ <a> ΠΏΡΡΠΌΡΠΌ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ.
Π‘Π΅Π»Π΅ΠΊΡΠΎΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
Π ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΠ°Π·ΡΡΡΠ½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² Π·Π°Π½ΡΠ»ΠΎ Π±Ρ 2-3 ΠΊΠ½ΠΈΠ³ΠΈ. ΠΠ»Π°Π²Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° Ρ Π½ΠΈΠΌΠΈ ΠΈ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ² (Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΡ , ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°) β ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² DOM.
ΠΠ΅ΡΠΎΠ΄ querySelectorAll, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° document, ΠΈ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²-ΡΠ·Π»ΠΎΠ², ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ Π½Π΅Π³ΠΎ.
ΠΡΠ±Π»Ρ Π³ΡΠΎΠ·Ρ Π² Π½Π°ΡΠ°Π»Π΅
<span>ΠΌΠ°Ρ</span>
ΠΠΎΠ³Π΄Π° Π²Π΅ΡΠ΅Π½Π½ΠΈΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ Π³ΡΠΎΠΌ
ΠΠ°ΠΊ Π±Ρ <span>ΡΠ΅Π·Π²ΡΡΡ
<span>ΠΈ ΠΈΠ³ΡΠ°Ρ</span></span>
ΠΡΠΎΡ ΠΎΡΠ΅Ρ Π² Π½Π΅Π±Π΅ Π³ΠΎΠ»ΡΠ±ΠΎΠΌ.
<script>
function count(selector) {
return document.querySelectorAll(selector).length;
}
console.log(count("p")); // ΠΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ
// β 4
console.log(count(".animal")); // ΠΠ»Π°ΡΡ animal
// β 2
console.log(count("p .animal")); // ΠΠ»Π°ΡΡ animal Π²Π½ΡΡΡΠΈ
// β 2
console.log(count("p > .animal")); // ΠΡΡΠΌΠΎΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ
// β 1
</script>
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π²ΡΠΎΠ΄Π΅ getElementsByTagName, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ querySelectorAll ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ. ΠΠ½ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ.
ΠΠ΅ΡΠΎΠ΄ querySelector (Π±Π΅Π· All) ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ½ Π½ΡΠΆΠ΅Π½, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ½ Π²Π΅ΡΠ½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ null, Π΅ΡΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ Π½Π΅Ρ.
Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ