Jetzt warten wir sehnsüchtig darauf, dass sie unser Design auf die nächste Stufe bringen können.
Webdesigner können HTML4 und CSS2 verwenden. Wir können die logische Struktur von Dokumenten vervollständigen und inhaltsreiche Websites erstellen, ohne das alte tabellenbasierte Layout zu verwenden. Wir können unserer Website ein schönes und subtiles Design hinzufügen, ohne Inline-Tags zu verwenden. Tatsächlich haben uns unsere aktuellen Designfähigkeiten weit von dieser schrecklichen Ära der Browserkriege, proprietären Protokolle und dieser hässlichen Webseiten voller Flackern, Scrollen und Blitzen entfernt.
Obwohl wir mittlerweile häufig HTML4 und CSS2.1 verwenden, können wir es noch besser machen! Wir können unseren Code umstrukturieren und unseren Seitencode semantischer gestalten. Wir können die Menge an Styling-Code reduzieren, der den Seiten ein schönes Aussehen verleiht, und sie skalierbarer machen. Jetzt warten HTML5 und CSS3 sehnsüchtig auf alle. Mal sehen, ob sie unser Design wirklich auf die nächste Stufe bringen können...
In der Vergangenheit haben Designer oft die Software verwendet, die auf der Tabelle basiert und kein semantisches Layout hat . Dank Innovatoren wie Jeffrey Zeldman und Eric Meyer akzeptierten intelligente Designer jedoch langsam das relativ semantischere
-Layout anstelle des Tabellenlayouts und begannen, externe Stylesheets aufzurufen. Aber leider erfordert komplexes Webdesign viele unterschiedliche Tag-Strukturcodes, wir nennen es „
-Suppe“-Syndrom. Vielleicht kennen Sie den folgenden Code:
Der Code lautet wie folgt:
<p class="section"> <p class="article"> <p class="header"> <h1>p Soup Demonstration</h1> <p>Posted on July 11th, 2009</p> </p> <p 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> </p> <p class="footer"> <p>Tags: HMTL, code, demo</p> </p> </p> <p class="aside"> <p class="header"> <h1>Tangential Information</h1> </p> <p 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> </p> <p class="footer"> <p>Tags: HMTL, code, demo</p> </p> </p> </p> </p>
Obwohl dies etwas zurückhaltend ist, ist das obige Beispiel Die Verwendung von HTML4-Codierung kann immer noch ein komplexes Design veranschaulichen, das immer noch zu aufgebläht ist (tatsächlich ist xHTML1.1 nichts weiter als das). Aber das Spannende ist, dass HTML5 das „
-Suppe“-Syndrom löst und uns eine Reihe neuer Strukturelemente bietet. Diese neuen HTML5-Elemente verfügen über eine detailliertere Semantik, um diese bedeutungslosen
-Tags zu ersetzen, und bieten gleichzeitig „natürliche“ CSS-Hooks für CSS-Aufrufe.
Das Folgende ist ein Beispiel für eine HTML5-Lösung:
Der Code lautet wie folgt:
<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>
Wie wir sehen können, ermöglicht uns HTML5 Verwenden Sie viel mehr Semantik. Strukturierte Code-Tags ersetzen die zahlreichen bedeutungslosen
-Tags. Diese semantische Funktion verbessert nicht nur die Qualität und Semantik unserer Webseiten, sondern reduziert auch die Klassen- und ID-Attribute, die für CSS im Code aufgerufen werden müssen, erheblich. Tatsächlich erlaubt uns CSS3 auch, alle Klassen und IDs zu ignorieren.
Verabschieden Sie sich von Klassenattributen und begrüßen Sie nette Tags
In Kombination mit HTML5, das reich an neuen semantischen Tags ist, bietet CSS3 Webdesignern Magie für ihre Webseiten. Mit der Leistungsfähigkeit von HTML5 erhalten wir mehr Kontrolle über den Dokumentcode. Mit der Leistungsfähigkeit von CSS3 wird unsere Kontrolle grenzenlos!
Auch ohne diese erweiterten CSS-Selektoren können wir immer noch verschiedene Container über leistungsstarke HTML5-Klauseln aufrufen, ohne uns um Attribute wie Klasse und ID kümmern zu müssen. Wie das vorherige p-Layout müssen wir es möglicherweise so in CSS aufrufen: p#news {}
Der Code lautet wie folgt:
p.section {} p.article {} p.header {} p.content {} p.footer {} p.aside {}
Sehen wir uns das Beispiel an Basierend auf HTML5: Abschnitt {}
Der Code lautet wie folgt:
article {} header {} footer {} aside {}
Das ist ein Fortschritt, aber es gibt noch einige Probleme, die gelöst werden müssen. Im
-Beispiel müssen wir das Element auf der Seite über das Klassen- oder ID-Attribut aufrufen. Diese Logik ermöglicht es uns, Stile auf jedes Element im Dokument anzuwenden, sei es als Ganzes oder einzeln. Im
-Beispiel sind beispielsweise die Elemente .section und .content leicht zu finden. Im HTML5-Beispiel gibt es jedoch viele Abschnittselemente im eigentlichen Dokument. Eigentlich könnten wir einige spezifische Attributselektoren hinzufügen, um diese verschiedenen Abschnittselemente aufzurufen, aber zum Glück habe ich jetzt nicht eine Handvoll erweiterter CSS-Selektoren, um auf verschiedene Abschnittselemente abzuzielen.
HTML-5-Elemente ohne Verwendung von Klasse und ID finden
Schauen wir uns an, wie man eine Instanz von HTML5-Seitenelementen ohne Verwendung von Klasse und ID findet. Dazu können wir drei A-CSS-Selektoren verwenden Lokalisieren und identifizieren Sie Elemente innerhalb einer Instanz. Wie folgt:
Nachkommenselektor: [CSS 2.1]: EF
Geschwisterselektor: [CSS 2.1]: E + F
Untergeordneter Elementselektor: [CSS 2.1]: E > >
定位下一个
作为最外层
代码如下:
section>section {}
定位
可以定位
代码如下:
section section article {}
定位
这三个元素分别在两个地方都出现过,一是在
代码如下:
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 会将它们由
代码如下:
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属性的页面元素。
总结
【相关推荐】
1. HTML5免费视频教程
5. 关于H5的事件属性详解
Das obige ist der detaillierte Inhalt vonBeispiel-Tutorial zur kombinierten Nutzung von H5 und CSS3. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!