This article mainly introduces javascript examples of obtaining inline styles and embedded styles. It has certain reference value. Interested friends can refer to
Set the background pattern through the style attribute
<!--html--> <p id="change"> change color </p>
/*css*/ #change { border: 1px solid black; width: 200px; height: 200px; text-align: center; line-height: 200px; }
//js change.style.backgroundColor="purple";
Set a color picker in the sidebar and set the background color of change to the selected color. At this time, the color of the color picker is added using inline styles.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css</title> <style> * { margin: 0; padding: 0; } .wrap { width: 220px; height: 200px; position: absolute; top: 300px; left: -172px; } .open-close { height: 45px; width: 48px; background: url("open-close.png") no-repeat; background-size: contain; border: 1px solid grey; border-left: none; position: absolute; top: 0; right: 0; z-index: 2; } .changer { height: 150px; width: 170px; position: absolute; top: 0; left: 0; border: 1px solid grey; text-align: center; padding-top: 8px; } .list > li { display: block; width: 36px; height: 36px; float: left; margin-left: 9%; margin-top: 10%; } #change { border: 1px solid black; width: 200px; height: 200px; text-align: center; line-height: 200px; } </style> </head> <body> <p class="wrap" id="wrap"> <!--html--> <p class="open-close" id="open"></p> <p class="changer"> <span>颜色选择器</span> <ul class="list"> <li class="color-orange" style="background-color: orange"></li> <li class="color-red" style="background-color: red"></li> <li class="color-blue" style="background-color: blue"></li> <li class="color-black" style="background-color: black"></li> <li class="color-green" style="background-color: green"></li> <li class="color-pink" style="background-color: pink"></li> </ul> </p> </p> <p id="change"> change color </p> <script> var open = document.getElementById("open"); var wrap = document.getElementById("wrap"); var list = document.getElementById("list"); var change = document.getElementById("change"); var color_change = document.getElementsByTagName("li"); change.style.backgroundColor = "purple"; open.onmouseover = function () { wrap.style.left = 0 + "px"; }; open.onclick = function () { wrap.style.left = -172 + "px"; }; for (var i = 0; i < color_change.length; i++) { color_change[i].id = i; color_change[i].onclick = function () { change.style.backgroundColor = color_change[this.id].style.backgroundColor; } } </script> </body> </html>
Problem:
When the color of the color selector is added using embedded or external introduction, the style attribute of javascript is invalid and the color value cannot be obtained.
Solution: The style attribute of
javascript can only obtain inline styles. For externally introduced styles and embedded styles, you need to use the currentStyle attribute. However, currentStyle is not supported under Firefox and Chrome, you need to use the following compatibility code:
HTMLElement.prototype.defineGetter("currentStyle", function () { return this.ownerDocument.defaultView.getComputedStyle(this, null); });
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { margin: 0; padding: 0; } .wrap { width: 220px; height: 200px; position: absolute; top: 300px; left: -172px; } .open-close { height: 45px; width: 48px; background: url("open-close.png") no-repeat; background-size: contain; border: 1px solid grey; border-left: none; position: absolute; top: 0; right: 0; z-index: 2; } .changer { height: 150px; width: 170px; position: absolute; top: 0; left: 0; border: 1px solid grey; text-align: center; padding-top: 8px; } .list > li { display: block; width: 36px; height: 36px; float: left; margin-left: 9%; margin-top: 10%; } .color-orange { background-color: orange; } .color-red { background-color: red; } .color-blue { background-color: blue; } .color-blank { background-color: black; } .color-green { background-color: green; } .color-pink { background-color: pink; } #change { border: 1px solid black; width: 200px; height: 200px; text-align: center; line-height: 200px; } </style> </head> <body> <p class="wrap" id="wrap"> <!--html--> <p class="open-close" id="open"></p> <p class="changer"> <span>颜色的选择</span> <ul class="list"> <li class="color-orange"></li> <li class="color-red"></li> <li class="color-blue"></li> <li class="color-blank"></li> <li class="color-green"></li> <li class="color-pink"></li> </ul> </p> </p> <p id="change"> change color </p> <script> HTMLElement.prototype.defineGetter("currentStyle", function () { return this.ownerDocument.defaultView.getComputedStyle(this, null); }); var open = document.getElementById("open"); var wrap = document.getElementById("wrap"); var list = document.getElementById("list"); var change = document.getElementById("change"); var color_change = document.getElementsByTagName("li"); change.style.backgroundColor="purple"; open.onmouseover = function () { wrap.style.left = 0 + "px"; }; open.onclick = function () { wrap.style.left = -172 + "px"; }; for (var i = 0; i < color_change.length; i++) { color_change[i].id = i; color_change[i].onclick = function () { change.style.backgroundColor = color_change[this.id].currentStyle.backgroundColor; } } </script> </body> </html>
The above is the detailed content of Example code sharing of how javascript obtains inline styles and embedded styles. For more information, please follow other related articles on the PHP Chinese website!