Maison  >  Article  >  interface Web  >  Explication détaillée de l'application HTML5+CSS3

Explication détaillée de l'application HTML5+CSS3

不言
不言original
2018-05-08 15:23:561775parcourir

Cet article présente principalement l'explication détaillée de l'application HTML5+CSS3. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Maintenant, HTML5 et CSS3 attendent avec impatience. pour tout le monde, voyons s'ils peuvent vraiment faire passer nos conceptions au niveau supérieur

Les concepteurs Web peuvent faire des choses intéressantes en utilisant HTML4 et CSS2.1. Nous pouvons compléter la structure logique des documents et créer des sites Web riches en contenu sans utiliser l'ancienne disposition basée sur des tableaux. Nous pouvons ajouter un style magnifique et subtil à notre site Web sans utiliser les balises 240cb830ca84ebaabbd07850110b414d En fait, nos capacités de conception actuelles nous ont éloignés de cette terrible ère de guerres de navigateurs, de protocoles propriétaires et de ces pages Web laides pleines de scintillements, de défilements et de flashs.

Bien que nous utilisions désormais couramment HTML4 et CSS2.1, nous pouvons faire mieux ! Nous pouvons restructurer notre code et rendre le code de notre page plus sémantique. Nous pouvons réduire la quantité de code de style qui donne aux pages une belle apparence et les rendre plus évolutives. Maintenant, HTML5 et CSS3 attendent avec impatience tout le monde. Voyons s'ils peuvent vraiment amener notre conception au niveau supérieur...

Dans le passé, les concepteurs utilisaient souvent le logiciel basé sur Le tableau n'a pas de disposition sémantique. . Mais finalement, grâce à des innovateurs comme Jeffrey Zeldman et Eric Meyer, les concepteurs intelligents ont lentement accepté la disposition e388a4556c0f65e1904146cc1a846bee relativement plus sémantique au lieu de la disposition en tableau, et ont commencé à appeler des feuilles de style externes. Mais malheureusement, une conception Web complexe nécessite de nombreux codes de structure de balises différents, nous appelons cela le syndrome "e388a4556c0f65e1904146cc1a846bee-soup". Peut-être connaissez-vous le code suivant : 1e9cef3dee283b0faa4bd5e876889dab

Copiez le code

Le code est le suivant suit :

 <div class="section"> 
      <div class="article"> 
        <div class="header"> 
            <h1>Div Soup Demonstration</h1> 
            <p>Posted on July 11th, 2009</p> 
        </div> 
        <div class="content"> 
            <p>Lorem ipsum text blah blah blah.</p> 
            <p>Lorem ipsum text blah blah blah.</p> 
            <p>Lorem ipsum text blah blah blah.</p> 
        </div> 
        <div class="footer"> 
            <p>Tags: HMTL, code, demo</p> 
        </div> 
      </div> 
      <div class="aside"> 
        <div class="header"> 
            <h1>Tangential Information</h1> 
        </div> 
        <div class="content"> 
            <p>Lorem ipsum text blah blah blah.</p> 
            <p>Lorem ipsum text blah blah blah.</p> 
            <p>Lorem ipsum text blah blah blah.</p> 
        </div> 
        <div class="footer"> 
            <p>Tags: HMTL, code, demo</p> 
        </div> 
      </div> 
  </div> 
</div>

Bien que ce soit un peu réticent, l'exemple ci-dessus peut quand même illustrer que l'utilisation de HTML4 pour coder une conception complexe est encore trop lourde (en fait, xHTML1.1 n'est rien de plus). Mais ce qui est passionnant, c'est que HTML5 résout le syndrome du « e388a4556c0f65e1904146cc1a846bee-soupe » et nous offre un nouvel ensemble d'éléments structurels. Ces nouveaux éléments HTML5 ont une sémantique plus détaillée pour remplacer ces balises e388a4556c0f65e1904146cc1a846bee dénuées de sens, et fournissent en même temps des hooks CSS « ​​naturels » pour les appels CSS.

Ce qui suit est un exemple de solution HTML5 : 2f8332c8dcfd5c7dec030a070bf652c3

Copiez le code

Le code est comme suit :

<section> 
      <article> 
        <header> 
            <h1>p Soup Demonstration</h1> 
            <p>Posted on July 11th, 2009</p> 
        </header> 
        <section> 
            <p>Lorem ipsum text blah blah blah.</p> 
            <p>Lorem ipsum text blah blah blah.</p> 
            <p>Lorem ipsum text blah blah blah.</p> 
        </section> 
        <footer> 
            <p>Tags: HMTL, code, demo</p> 
        </footer> 
      </article> 
      <aside> 
        <header> 
            <h1>Tangential Information</h1> 
        </header> 
        <section> 
            <p>Lorem ipsum text blah blah blah.</p> 
            <p>Lorem ipsum text blah blah blah.</p> 
            <p>Lorem ipsum text blah blah blah.</p> 
        </section> 
        <footer> 
            <p>Tags: HMTL, code, demo</p> 
        </footer> 
      </aside> 
  </section> 
</section>

Comme nous pouvons le constater, HTML5 nous permet de remplacer un grand nombre de balises e388a4556c0f65e1904146cc1a846bee dénuées de sens par de nombreuses autres balises de code structuré sémantique. Cette fonctionnalité sémantique améliore non seulement la qualité et la sémantique de nos pages Web, mais réduit également considérablement les attributs class et id qui doivent être appelés pour CSS dans le code. En fait, CSS3 nous permet également d'ignorer toutes les classes et tous les identifiants.

Dites adieu aux attributs de classe et bienvenue aux balises soignées 

Combiné avec le HTML5 riche en nouvelles balises sémantiques, CSS3 offre aux concepteurs Web de la magie pour leurs pages Web. Avec la puissance du HTML5, nous aurons plus de contrôle sur le code du document. Avec la puissance du CSS3, notre contrôle deviendra infini !

Même sans ces sélecteurs CSS avancés, nous pouvons toujours appeler différents conteneurs via de puissantes clauses HTML5 sans nous soucier des attributs tels que la classe et l'identifiant. Comme la mise en page p précédente, nous devrons peut-être l'appeler ainsi en CSS : p#news {}

Copier le code

Le code est la suivante :

div.section {} 
div.article {} 
div.header  {} 
div.content {} 
div.footer  {} 
div.aside  {}

Jetons un coup d'œil à un exemple basé sur HTML5 : section {}

Copier le code

Le code est le suivant :

article {} 
header  {} 
footer  {} 
aside  {}

C'est un progrès, mais il reste encore quelques problèmes à résoudre. Dans l'exemple e388a4556c0f65e1904146cc1a846bee, nous devons appeler l'élément de la page via l'attribut class ou id. Cette logique nous permettra d'appliquer des styles à n'importe quel élément du document, que ce soit dans son ensemble ou individuellement. Par exemple, dans l'exemple e388a4556c0f65e1904146cc1a846bee, les éléments .section et .content sont faciles à localiser. Mais dans l’exemple HTML5, il y aura de nombreux éléments de section dans le document lui-même. En fait, nous pourrions ajouter des sélecteurs d'attributs spécifiques pour appeler ces différents éléments de section, mais heureusement, je n'ai pas quelques sélecteurs CSS avancés pour cibler différents éléments de section maintenant.

Localisation d'éléments HTML-5 sans utiliser de classe et d'identifiant

Voyons comment localiser une instance d'éléments de page HTML5 sans utiliser de classe et d'identifiant. Nous pouvons utiliser trois sélecteurs CSS pour. localiser et identifier des éléments dans une instance. Comme suit :

      后代选择器:[CSS 2.1]: EF
      兄弟选择器:[CSS 2.1]: E + F
      子元素选择器:[CSS 2.1]: E > F

      下面让我们来看看如何不使用class和id而完成对文档中的那些section元素的定位吧:

定位最外层的2f8332c8dcfd5c7dec030a070bf652c3元素

  考虑到我们的例子并不是一套完整的HTML5代码,所以我们假定在6c04bd5ca3fcae76e30b72ad730ca86d元素下有个c787b9a589a3ece771e842a6176cf8e9元素与2f8332c8dcfd5c7dec030a070bf652c3元素是兄弟元素。这样的话,我们就可以向下面代码那样定位最外层的
2f8332c8dcfd5c7dec030a070bf652c3了:

复制代码

代码如下:

body nav+section {}

定位下一个2f8332c8dcfd5c7dec030a070bf652c3元素

作为最外层2f8332c8dcfd5c7dec030a070bf652c3元素下的唯一直属子集元素,这个2f8332c8dcfd5c7dec030a070bf652c3元素也许可以这样定位:

复制代码

代码如下:

section>section {}

定位23c3de37f2f9ebcb477c4a90aac6fffd元素

可以定位23c3de37f2f9ebcb477c4a90aac6fffd元素的方法有很多,不过最简单的方法当然就是后代选择器了:

复制代码

代码如下:

section section article {}

定位1aa9e5d373740b65a0cc8f0a02150c53、2f8332c8dcfd5c7dec030a070bf652c3 和c37f8231a37e88427e62669260f0074d元素

这三个元素分别在两个地方都出现过,一是在23c3de37f2f9ebcb477c4a90aac6fffd元素中出现,另一是在15221ee8cba27fc1d7a26c47a001eb9b元素中出现。这种差别能让我们轻松定位每个元素。

复制代码

代码如下:

article header {} 
article section {} 
article footer {}

或者一起定义:

复制代码

代码如下:

section section header {} 
section section section {} 
section section footer {}

到目前为止,我们已经使用CSS2.1选择器排除掉了所有的class和id。那么我们为什么还需要使用CSS3 呢?我很高兴你能这么问…

使用CSS3对HTML5元素进行高级定位

  虽然我们已经使用CSS2.1选择器排除掉了所有的class和id,显然还会有很多更复杂的情况需要CSS3的高级选择器来解决。让我们通过完成一下的实例来了解一下如何在不使用无用的class和id属性的情况下利用CSS3定位页面元素。

使用一个唯一的日志 (post)ID定位所有日志

  wordpress提供给我们一种包含了ID的每篇日志的源代码输出。这种信息通常用于导航和/或了解资料的意图,不过CSS3可以利用这些唯一的ID来定义这些日志的样式。当然,你还可以像往常那样为每篇日志添加class=”post”这样的属性,但这就与我们练习的意图相冲突了(再加上它没有一点乐趣所在)。使用”子字符串匹配选择器”,我们就可以像下面这样定位所有日志和它们的不同元素了。

复制代码

代码如下:

article[id*=post-] {}          /* 定位所有日志 */ 
article[id*=post-] header h1 {} /* 定位所有日志中的h1标签 */ 
article[id*=post-] section p {} /* 定位所有日志中的p标签 */

我们仍然可以使用同样的方式定位评论的元素和它们的子元素。

复制代码

代码如下:

article[id*=comment-] {}          /* 定位所有评论 */ 
article[id*=comment-] header h1 {} /* 定位所有评论中的h1标签 */ 
article[id*=comment-] section p {} /* 定位所有评论中的p标签 */

定位一些指定的区域(section)或文章(article)

  有很多博客的日志量和评论量都相当大,HTML 5 会将它们由2f8332c8dcfd5c7dec030a070bf652c3或23c3de37f2f9ebcb477c4a90aac6fffd元素组成。为了定位哪些指定的2f8332c8dcfd5c7dec030a070bf652c3 或23c3de37f2f9ebcb477c4a90aac6fffd元素,我们就要转而使用强大的“:nth-child”选择器了:

复制代码

代码如下:

section:nth-child(1) {} /* 选择第一个 <section> */ 
article:nth-child(1) {} /* 选择第一个 <article> */ 
section:nth-child(2) {} /* 选择第二个 <section> */ 
article:nth-child(2) {} /* 选择第二个 <article> */

同样,我们可以使用“:nth-last-child”选择器定位反序的一些元素。

复制代码

代码如下:

section:nth-last-child(1) {} /* 选择最后一个 <section> */ 
article:nth-last-child(1) {} /* 选择最后一个 <article> */ </p><p>section:nth-last-child(2) {} /* 选择倒数第二个 <section> */ 
article:nth-last-child(2) {} /* 选择倒数第二个 <article> */

使用更多的方式选择指定元素

  另一种选择HTML5中指定元素(如 header、section和footer)的方法就是利用”:only-of-type”选择器的优势。由于这些HTML5元素通常会在很多地方出现不止一次,所以当我们想定位那种在父元素下仅出现过一次的标签时这种方法很方便。例如,我们要选择的是在某元素中有切仅有的唯一一个元素,如以下代码:

复制代码

代码如下:

<section> 
  <section></section> 
  <section> 
      <section>定位这个section元素</section> 
  </section> 
  <section> 
      <section>定位这个section元素</section> 
  </section> 
  <section> 
      <section>但不定位这个section元素</section> 
      <section>和这个section元素</section> 
  </section> 
  <section></section> 
</section>

我们可以仅使用以下一行选择器:

复制代码

代码如下:

section>section:only-of-type {}

再次唠叨,你可以固执的为每个元素添加ID属性,但你会失去代码的可扩展性、维护性和绝对简洁的结构与表现相分离。 CSS3的确能让我们可快速更方便的定位几乎所有没有ID和class属性的页面元素。

总结

  我相信随着时间的推进和更多浏览器的支持,HTML5和CSS3将越来越受欢迎,它们将为web设计师们带来更无穷的能量,让我们的web前端更上一个台阶。

相关推荐:

关于HTML5+CSS3新增内容的总结

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:
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