Maison interface Web js tutoriel JS obtient des compétences en style CSS (style/getComputedStyle/currentStyle)_javascript

JS obtient des compétences en style CSS (style/getComputedStyle/currentStyle)_javascript

May 16, 2016 pm 03:19 PM
css js

Les styles CSS sont divisés en trois catégories :
Style en ligne : est écrit dans le tag, et le style en ligne n'est valable que pour tous les tags.
Style interne : est écrit en HTML, et le style interne n'est valable que pour la page Web où il se trouve.
Feuille de style externe : Si plusieurs pages Web doivent utiliser le même style (Styles), écrivez le style (Styles) dans un fichier CSS avec le suffixe .css, puis ajoutez-le à chaque page. Référencez ce fichier CSS dans une page Web qui doit utiliser ces styles (Styles).

getComputedStyle est une méthode qui peut obtenir toutes les valeurs finales des propriétés CSS utilisées de l'élément actuel. Ce qui est renvoyé est un objet de style CSS ([object CSSStyleDeclaration])
currentStyle est une propriété du navigateur IE et renvoie un objet de style CSS

l'élément fait référence à l'objet DOM obtenu par JS
element.style // Seul peut obtenir des styles intégrés
element.currentStyle //Le navigateur IE obtient des styles non intégrés
window.getComputedStyle(element, pseudo-class) //Les navigateurs non IE obtiennent des styles non intégrés
document.defaultView.getComputedStyle(element, pseudo-class)//Les navigateurs non-IE obtiennent des styles non intégrés
Remarque : Avant Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1), le deuxième paramètre "pseudo-classe" était obligatoire (si ce n'est pas une pseudo-classe, mis à null), ce paramètre peut désormais être omis.

Le code HTML suivant contient deux styles CSS. Le div avec la balise id est un style en ligne et le div avec id test est un style interne.

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="Generator" content="EditPlus®">
    <meta name="Author" content="Yvette Lau">
    <meta name="Keywords" content="关键字">
    <meta name="Description" content="描述">
    <title>Document</title>
    <style>
      #test{
        width:500px;
        height:300px;
        background-color:#CCC;
        float:left;
      }
    </style>
  </head>
  <body>
    <div id = "test"></div>
    <div id = "tag" style = "width:500px; height:300px;background-color:pink;"></div>
  </body>
</html>
Copier après la connexion

Partie JS

<script type = "text/javascript">
  window.onload = function(){
    var test = document.getElementById("test");
    var tag = document.getElementById("tag");

    //CSS样式对象:CSS2Properties{},CSSStyleDeclaration
    console.log(test.style); //火狐返回空对象CSS2Properties{},谷歌返回空对象CSSStyleDeclaration{} 
    console.log(tag.style); //返回CSS2Properties{width:"500px",height:"300px",background-color:"pink"}
    //element.style获取的是内嵌式的style,如果不是内嵌式,则是一个空对象

    console.log(tag.style.backgroundColor);//pink
    console.log(tag.style['background-color']);//pink
    //获取类似background-color,border-radius,padding-left类似样式的两种写法啊

    console.log(test.currentStyle) //火狐和谷歌为Undefined,IE返回CSS对象
    console.log(window.getComputedStyle(test,null))//谷歌返回CSSStyleDeclaration{……} ,火狐返回CSS2Properties{……}
    console.log(window.getComputedStyle(test))
    //效果同上,但是在Gecko 2.0 (Firefox 4/Thunderbird 3.3/SeaMonkey 2.1) 之前,第二个参数“伪类”是必需的(如果不是伪类,设置为null)

    console.log(test.currentStyle.width);//500px(IE)
    console.log(window.getComputedStyle(test).width); //500px;
    console.log(window.getComputedStyle(test)['width']);//500px;
    //document.defaultView.getComputedStyle(element,null)[attr]/window.getComputedStyle(element,null)[attr]   
  }
</script>

Copier après la connexion

Les exemples ci-dessus servent uniquement à vérifier si la discussion précédente est correcte.

Pour plus de simplicité, nous pouvons également faire une simple encapsulation du style d'acquisition.

function getStyle(element, attr){
      if(element.currentStyle){
        return element.currentStyle[attr];
      }else{
        return window.getComputedStyle(element,null)[attr];
      }
    }
    console.log(getStyle(test,"cssFloat"));//left
    console.log(getStyle(test,"float"));  //left,早前FF和chrome需要使用cssFloat,不过现在已经不必
    console.log(getStyle(test,"stylefloat"));//火狐和谷歌都是undefined
    console.log(getStyle(test,"styleFloat")); //IE9以下必须使用styleFloat,IE9及以上,支持styleFloat和cssFloat

    console.log(window.getComputedStyle(test).getPropertyValue("float"))

Copier après la connexion

Correspondant au style float, IE utilise styleFloat, alors que FF et Chrome utilisaient auparavant cssFloat. Maintenant, FF et Chrome prennent déjà en charge float, et il existe d'autres attributs, je ne les listerai pas un par un. rappelez-vous ces différences, nous introduisons deux méthodes pour accéder aux objets de style CSS :
Méthode getPropertyValue et méthode getAttribute

IE9 et autres navigateurs (getPropertyValue)
window.getComputedStyle(element, null).getPropertyValue("float");
element.currentStyle.getPropertyValue("float");
getPropertyValue ne prend pas en charge la notation de casse chameau. (Compatible avec IE9 et supérieur, FF, Chrom, Safari, Opera)
Par exemple : window.getComputedStyle(element,null).getPropertyValue("background-color");

Pour IE6~8, vous devez utiliser la méthode getAttribute pour accéder aux attributs de l'objet de style CSS

element.currentStyle.getAttribute("float");//N'a plus besoin d'être écrit comme styleFloat
element.currentStyle.getAttribute("backgroundColor");//Le nom de l'attribut doit être écrit en casse camel, sinon IE6 ne le prend pas en charge. Si vous ignorez IE6, vous pouvez l'écrire comme "background-color"

.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun et qu'il permettra d'utiliser facilement JS pour obtenir des styles CSS.

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que signifie l'espace réservé en vue Que signifie l'espace réservé en vue May 07, 2024 am 09:57 AM

Que signifie l'espace réservé en vue

Comment écrire des espaces dans vue Comment écrire des espaces dans vue Apr 30, 2024 am 05:42 AM

Comment écrire des espaces dans vue

Comment avoir dom en vue Comment avoir dom en vue Apr 30, 2024 am 05:36 AM

Comment avoir dom en vue

Que signifie span en js Que signifie span en js May 06, 2024 am 11:42 AM

Que signifie span en js

Que signifie rem en js Que signifie rem en js May 06, 2024 am 11:30 AM

Que signifie rem en js

Comment introduire des images dans vue Comment introduire des images dans vue May 02, 2024 pm 10:48 PM

Comment introduire des images dans vue

Quelle est la fonction de la balise span Quelle est la fonction de la balise span Apr 30, 2024 pm 01:54 PM

Quelle est la fonction de la balise span

Dans quelle langue le plug-in du navigateur est-il écrit ? Dans quelle langue le plug-in du navigateur est-il écrit ? May 08, 2024 pm 09:36 PM

Dans quelle langue le plug-in du navigateur est-il écrit ?

See all articles