>  기사  >  웹 프론트엔드  >  HTML5+CSS3 애플리케이션에 대한 자세한 설명

HTML5+CSS3 애플리케이션에 대한 자세한 설명

不言
不言원래의
2018-05-08 15:23:561830검색

이 글은 주로 HTML5+CSS3 응용 프로그램에 대한 자세한 설명을 소개합니다. 이제는 필요한 친구들이 참고할 수 있도록 공유합니다. 그들이 우리 디자인을 실제로 다음 단계로 끌어올릴 수 있는지 살펴보겠습니다.

웹 디자이너는 HTML4와 CSS2.1을 사용하여 멋진 작업을 수행할 수 있습니다. 기존의 테이블 기반 레이아웃을 사용하지 않고도 문서의 논리적 구조를 완성하고 콘텐츠가 풍부한 웹사이트를 만들 수 있습니다. 인라인 240cb830ca84ebaabbd07850110b414d 태그를 사용하지 않고도 웹사이트에 아름답고 섬세한 스타일을 추가할 수 있습니다. 사실, 우리의 현재 디자인 능력은 브라우저 전쟁, 독점 프로토콜, 깜박임, 스크롤 및 플래시로 가득 찬 추악한 웹 페이지의 끔찍한 시대에서 우리를 멀리 데려갔습니다.

지금은 HTML4와 CSS2.1을 일반적으로 사용하고 있지만 여전히 더 잘할 수 있습니다! 코드를 재구성하고 페이지 코드를 더 의미있게 만들 수 있습니다. 페이지를 아름답게 보이게 하는 스타일링 코드의 양을 줄이고 확장성을 높일 수 있습니다. 이제 HTML5와 CSS3가 우리 디자인을 다음 단계로 끌어올릴 수 있을지 모두가 간절히 기다리고 있습니다...

과거에는 디자이너들이 테이블 기반 시맨틱 레이아웃을 자주 사용하는 것과 관련이 없는 경우가 많았습니다. 그러나 결국 Jeffrey Zeldman 및 Eric Meyer와 같은 혁신가 덕분에 현명한 디자이너들은 테이블 레이아웃 대신 상대적으로 더 의미 있는 e388a4556c0f65e1904146cc1a846bee 레이아웃을 천천히 받아들이고 외부 스타일 시트를 부르기 시작했습니다. 그러나 불행하게도 복잡한 웹 디자인에는 다양한 태그 구조 코드가 많이 필요합니다. 이를 "p-soup" 증후군이라고 부릅니다. 아마도 다음 코드에 익숙하실 것입니다. 1e9cef3dee283b0faa4bd5e876889dab

코드 복사코드는 다음과 같습니다.

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

좀 꺼려지긴 하지만 위의 예는 다음과 같습니다. 복잡한 디자인에 대한 HTML4의 사용은 코딩 후에도 여전히 너무 부풀어 오른다는 것을 보여줍니다(사실 xHTML1.1은 그 이상은 아닙니다). 그러나 흥미로운 점은 HTML5가 "p-soup" 증후군을 해결하고 새로운 구조적 요소 세트를 제공한다는 것입니다. 이러한 새로운 HTML5 요소는 의미 없는 e388a4556c0f65e1904146cc1a846bee 태그를 대체하는 보다 자세한 의미를 가지며 동시에 CSS 호출에 대한 "자연스러운" CSS 후크를 제공합니다.

다음은 HTML5 솔루션의 예입니다. 2f8332c8dcfd5c7dec030a070bf652c3

코드 복사코드는 다음과 같습니다.

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

보시다시피 HTML5를 사용하면 더 많은 의미 체계 구조를 대체할 수 있습니다. 코드 태그 의미 없는 e388a4556c0f65e1904146cc1a846bee 태그가 엄청나게 많습니다. 이 의미론적 기능은 웹 페이지의 품질과 의미론을 향상시킬 뿐만 아니라 코드에서 CSS에 대해 호출해야 하는 클래스 및 ID 속성을 크게 줄입니다. 실제로 CSS3에서는 모든 클래스와 ID를 무시할 수도 있습니다.

클래스 속성에 작별을 고하고 깔끔한 태그를 환영합니다

  새로운 의미 태그가 풍부한 HTML5와 결합된 CSS3는 웹 디자이너에게 웹 페이지에 신과 같은 힘을 제공합니다. HTML5의 힘으로 우리는 문서 코드에 대한 더 많은 통제력을 갖게 될 것입니다. CSS3의 힘으로 우리의 통제력은 무한해질 것입니다!

고급 CSS 선택기가 없어도 클래스 및 ID와 같은 속성을 사용하지 않고도 강력한 HTML5 절을 통해 다양한 컨테이너를 호출할 수 있습니다. 이전 p 레이아웃과 마찬가지로 CSS에서는 다음과 같이 호출할 수 있습니다. p#news {}

코드 복사코드는 다음과 같습니다.

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

HTML5 기반의 예제를 살펴보겠습니다. : 섹션 {}

코드 복사코드는 다음과 같습니다.

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

이것은 진행 중이지만 아직 해결해야 할 몇 가지 문제가 있습니다. e388a4556c0f65e1904146cc1a846bee 예에서는 class 또는 id 속성을 통해 페이지의 요소를 호출해야 합니다. 이 논리를 사용하면 전체 또는 개별적으로 문서의 모든 요소에 스타일을 적용할 수 있습니다. 예를 들어 e388a4556c0f65e1904146cc1a846bee 예에서는 .section 및 .content 요소를 쉽게 찾을 수 있습니다. 그러나 HTML5 예에서는 실제 문서에 많은 섹션 요소가 있습니다. 실제로 다양한 섹션 요소를 호출하기 위해 몇 가지 특정 속성 선택기를 추가할 수 있지만 다행히 현재는 다양한 섹션 요소를 대상으로 하는 몇 가지 고급 CSS 선택기가 없습니다.

클래스와 ID를 사용하지 않고 HTML-5 요소 찾기

클래스와 ID를 사용하지 않고 HTML5 페이지 요소의 인스턴스를 찾는 방법을 살펴보겠습니다. 세 가지 CSS 선택기를 사용하여 인스턴스에서 요소를 찾고 식별할 수 있습니다. 다음과 같습니다:

      后代选择器:[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新增内容的总结

위 내용은 HTML5+CSS3 애플리케이션에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.