Maison  >  Article  >  interface Web  >  Comprendre les fonctionnalités facilement négligées du CSS et éviter certains pièges courants

Comprendre les fonctionnalités facilement négligées du CSS et éviter certains pièges courants

青灯夜游
青灯夜游avant
2020-11-11 18:09:232119parcourir

Comprendre les fonctionnalités facilement négligées du CSS et éviter certains pièges courants

Le CSS semble très simple lorsque vous l'apprenez pour la première fois, mais au fur et à mesure que vous en apprendrez davantage, vous réaliserez à quel point l'eau du CSS est profonde. Vous rencontrerez toujours divers pièges. qu'on rencontre souvent.

Tutoriel recommandé : Tutoriel vidéo CSS

Insensible à la casse

Bien que nous écrivions habituellement du CSS, utilisez des minuscules, mais en fait du CSS n'est pas sensible à la casse

.test{
    background-COLOR:#a00;
    width:100px;
    height: 100px;
}

Comprendre les fonctionnalités facilement négligées du CSS et éviter certains pièges courants

Bien que background-color soit écrit comme background-COLOR, il prendra toujours effet. La raison pour laquelle il est écrit en minuscule est parce que la norme Xhtml. relation, mais même si ce n'est pas le cas Lorsque deux règles sont appliquées au même élément HTML, si les attributs définis sont en conflit, dont la valeur CSS doit-elle être utilisée ?

Différents niveaux

L'utilisation de !important après un attribut remplacera le style d'élément défini n'importe où dans la page.

    Style écrit à l'intérieur de l'élément en tant qu'attribut de style
  • sélecteur d'identifiant
  • sélection de classe
  • Sélecteur de balises
  • Sélecteur de caractères génériques
  • Personnalisation ou héritage du navigateur
  • Même niveau

  • Le style écrit plus tard dans le même niveau écrasera le style écrit en premier

Le niveau ci-dessus est toujours facile à voir, je comprends, mais parfois certaines règles sont une combinaison de plusieurs niveaux, comme ceci

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        div.test{
            background-COLOR:#a00;
            width:100px;
            height: 100px;
        }

        .test.test2{
            background-COLOR:#0e0;
            width:100px;
            height: 100px;
        }
    </style>
</head>
<body>
    <div class="test test2"></div>
</body>
</html>
A quelle règle s'applique le div ? Il existe une méthode de calcul simple (rappels du jardin, le poids n'est pas réellement Selon le système décimal, la représentation numérique est juste pour illustrer l'idée. Dix mille classes ne sont pas aussi élevées que le poids d'un identifiant)

Le poids de la feuille de style en ligne est de 1000

    Le sélecteur d'ID a un poids de 100
  • Le sélecteur de classe de classe a un poids de 10
  • Le sélecteur de balise HTML Le le poids est de 1
  • Nous pouvons ajouter les règles correspondantes dans le sélecteur et comparer les poids si les poids sont les mêmes, les derniers écraseront les précédents. class La valeur est 1+10=11 et le poids de .test1 .test2 est 10+10=20, donc le div appliquera .test1 .test2 et deviendra vert

Certains attributs des éléments en ligne

Comprendre les fonctionnalités facilement négligées du CSS et éviter certains pièges courantsTous les attributs ne peuvent pas prendre effet sur les éléments en ligne

L'attribut width ne sera pas appliqué aux éléments en ligne . Sa longueur est étirée par le contenu

    L'attribut height n'est pas appliqué aux éléments en ligne, et sa hauteur est également étirée par le contenu, mais la hauteur peut être ajustée via line-height.
  1. Les attributs padding des éléments en ligne ne prennent effet qu'avec padding-left et padding-right et padding-bottom modifieront la portée de l'élément mais n'affecteront pas les autres éléments.
  2. Seules margin-left et margin-right sont valides pour l'attribut margin des éléments en ligne. Margin-top et margin-bottom ne sont pas valides. 🎜>L'attribut overflow des éléments en ligne n'est pas valide. Il n'est pas nécessaire d'expliquer cela davantage.
  3. L'attribut d'alignement vertical de l'élément en ligne n'est pas valide (l'attribut height est invalide. )
  4. <div style="background-color: #a44;">
      <span style="padding:4px; margin:8px; height: 500px; width:1000px; background-color:#0e0;">
       123456789123456789</span>
      </div>
    
      <div style="background-color: #a44;">
      <span style="padding:4px; margin:8px; height: 500px; width:1000px; background-color:#0a0;">
          123456789</span>
      </div>
  5. Passé Comme le montre l'exemple, les attributs de largeur et de hauteur que nous avons définis pour span ne prennent pas effet, margin-top et margin-bottom ne sont pas valides, et padding-top et padding-bottom modifieront la portée de l'élément (la zone d'arrière-plan devient plus grande), mais cela n'a aucun effet. Les positions des éléments suivants
  6. Certaines mutuellement. éléments exclusifs

Comprendre les fonctionnalités facilement négligées du CSS et éviter certains pièges courants Pour les éléments à position absolue et fixe (les attributs de taille, de largeur et de hauteur fixes sont définis), si les attributs du haut et de gauche sont définis, définissez alors le bas et la droite les valeurs​​n'auront aucun effet. Top et left devraient avoir une priorité élevée, sinon comment le navigateur saura-t-il selon qui se positionner s'il est écrit en même temps

Pour les éléments positionnés absolus et fixes, si les valeurs haut, gauche, bas et droite sont définies, l'attribut margin ne fonctionnera pas

    Pour les éléments positionnés absolus et fixes , si l'attribut float est défini sur les valeurs haut, gauche, bas et droite, l'attribut float sera également invalide
  1. Si l'attribut float ou absolu ou un positionnement fixe est défini pour l'élément de bloc, puis l'attribut d'alignement vertical ne fonctionne plus
  2. unité de taille de police

  3. Les unités couramment utilisées quand on écrit la taille des polices est
  4. px

pt

    em
  • rem
  • Que signifient ces polices ?
  • 1. Px est l'abréviation de pixel, qui est une unité basée sur les pixels. Pendant le processus de navigation sur le Web, le texte et les images sur l'écran changeront avec la résolution de l'écran. une largeur de 100 px. À une résolution de 800 × 600, il occupe 1/8 de la largeur de l'écran, mais à 1024 × 768, il n'en occupe qu'environ 1/10.

    所以如果在定义字体大小时,使用px作为单位,那一旦用户改变显示器分辨率从800到1024,用户实际看到的文字就要变“小”(自然长度单位),甚至会看不清,影响浏览。 

    2、pt是point(磅)缩写,是一种固定长度的度量单位,大小为1/72英寸。如果在web上使用pt做单位的文字,字体的大小在不同屏幕(同样分辨率)下一样,这样可能会对排版有影响,但在Word中使用pt相当方便。

    因为使用Word主要目的都不是为了屏幕浏览,而是输出打印。当打印到实体时,pt作为一个自然长度单位就方便实用了:比如Word中普通的文档都用“宋体 9pt”,标题用“黑体 16pt”等等,无论电脑怎么设置,打印出来永远就是这么大。

    3、em:是相对单位,是一个相对长度单位,最初是指字母M的宽度,所以叫em,现指的是字符宽度的倍数,用法类似百分比,如:0.8em, 1.2em,2em等。

    通常1em=16px(浏览器默认字体大小16px),em是指父元素的字体大小。在一个页面上给定了一个父元素的字体大小,这样就可以通过调整一个元素来成比例的改变所有元素大小.它可以自由缩放,比如用来制作可伸缩的样式表。

    类似还有ex的概念,ex 相对于字符“x”的高度,此高度通常为字体尺寸的一半。

    4、rem:rem是CSS新增的,em是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小,在多次使用时,就会带来无法预知的错误风险。

    而rem是相对于根元素(r:root),使用rem我们只需要在根元素确定一个参考值,然后就可以控制整个html页面所有字体了。

    :checked 选择器范围

    我们知道:checked会选择被选中的checkbox和radio,看个例子

    <!doctype html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            :checked{
                margin: 10px;
            }
        </style>
    </head>
    <body>
        <input id="t1" type="checkbox" checked/>
        <input id="t3" type="radio" checked/>
        <select>
            <option id="t2">test</option>
            <option id="t4">test2</option>
        </select>
    </body>
    </html>

    Comprendre les fonctionnalités facilement négligées du CSS et éviter certains pièges courants

    对于前两个margin变成10px我们不奇怪,但是当我们看select的option的时候会发现被选中的option的margin业变成了10px,没有被选中的option则没有变化!

    Comprendre les fonctionnalités facilement négligées du CSS et éviter certains pièges courants

    是的:checked也会选择被选中的option

    并不是所有图片都会被加载

    我们知道写在页面上的img标签,无论显示与否,图片都会被加载(所以试图通过对图片display:none来达到节省网络流量的做法就省省吧。。。),我们也经常使用backgroung-image等css属性为页面添加图片,这些图片是不是一定会被加载呢,看个例子

    <!doctype html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            .useless{
                background-image: url(images/0.jpg);
            }
            .hidden{
                background-image: url(images/1.jpg);
            }
            .none{
                background-image: url(images/2.jpg);
            }
            .parentHidden{
                background-image: url(images/3.jpg);
            }
            .parentNone{
                background-image: url(images/4.jpg);
            }
        </style>
    </head>
    <body>
        <div></div>
    
        <div></div>
    
        <div style="visibility:hidden;">
            <div></div>
        </div>
    
        <div style="display:none;">
            <div></div>
        </div>
        
        <div style="display:none">
            <img  src="images/5.jpg" alt="Comprendre les fonctionnalités facilement négligées du CSS et éviter certains pièges courants" ></div>
    </body>
    </html>

    看一下网络监视情况(怎么柳岩的照片变小后感觉怪怪的。。。)

    Comprendre les fonctionnalités facilement négligées du CSS et éviter certains pièges courants 我们可以发现图片0和4没有被下载,0是没有用到的CSS,4是父容器的display被设为none的情况,这两种情况下的CSS引用的图片是不会被加载的,而父容器设置visibility属性为hidden仍然会加载图片,不要搞混了

    更多编程相关知识,请访问:编程入门!!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer