찾다
웹 프론트엔드HTML 튜토리얼《CSS那些事儿》读书笔记_html/css_WEB-ITnose

注:

  • 此书出版于2009年,所以有些知识...你懂得。
  • 有些我熟悉的知识点,就没有记录下来了,所以想了解更多的细节,还是去看下此书吧。
  • 暗灰色标记部分,是我自己的理解,有不对或要补充的地方,还请大家多多指教。
  • 代码演示我统一放到了jsfiddle上,国内访问速度稍慢些,大家耐心点。或是大家知道国内有类似的在线调试网站,麻烦和我分享下,在此先谢了。
  • 该笔记中只给出了部分代码演示链接,如果想看该书的完整示例代码,可到百度云:http://pan.baidu.com/s/1o64sPR0 下载,我已经共享好了。
  • 该笔记较长,大家耐心点哦。
  •  

    耐心地学习CSS,掌握好CSS的本质原理后,你将会发现原来CSS真的很好玩。

     

    学习CSS最好的方法就是 不断地做,不断地想,不断地实践。

     

    CSS特点:

  • 修饰页面文本、图片等页面元素,避免使用不必要的HTML元素。
  • 更有效地控制页面结构、页面布局。
  • 提高开发和维护效率。
  •  

    CSS的简写:

  • 颜色的缩写:#RRGGBB ?? 缩写成 #RGB。
  • 单位值的省略:当数值为0时,可省略单位。
  • 内外边距的简写:根据上右下左的顺时针方向,有4种简写方式。
  • 边框的简写:border: -width || -style || -color。
  • 背景的简写:background: -color || -image || -repeat || -attachment || -position
  • 字体的简写:font: -style || -variant || -weight || -size || /line-height || -family
  • 列表的简写:list-style: -image || -position || -type
  •  

    CSS选择符:

  • 标签选择符:E(html标签)
  • ID选择符:#className
  • 类选择符:.className
  • 通配符选择符:*
  • 包含选择符:又称派生或后代选择符,作用于元素的后代元素。
  • 子选择符:又称子对象选择符,作用于元素的子元素,用“>”连接选择符(IE7+)。
  • 相邻选择符:作用于元素的相邻的下一个元素(线性结构中的直接后驱),用”+“连接选择符(IE7+)。
  • 属性选择符:E[attr]、E[attr=“value”]、E[attr~=“value”]、E[attr|=“value”]、E[attr^=“value”]
  • 选择符的组合关系:针对性使用类选择符或ID选择符、选择符群组、选择符组合。
  •  

    伪类:

    用来指定一个或者多个与其相关的选择符的状态( IE6/7支持部分)。其形式为:选择符:伪类 {属性:属性值;}。

    如:a:link{}、a:visited{}、a:hover{}、a:active{}。

    伪类可使页面增加更多交互效果,而不必去使用过多的javascript来辅助实现。

     

    伪对象:

    指在html的文档指定的信息之外,创建文档的额外信息( IE6/7支持部分)。其形式:选择符:伪对象 {属性:属性值;}。

    如:p:before {content: “4月1日”}。

     

    CSS层叠样式表的特色在于“层叠”,所谓 层叠即表示CSS样式表会根据选择符的使用而将样式相互叠加或者覆盖。

     

    网页定义的4种样式:

  • html:表示在html中是使用的样式。
  • 作者:表示CSS文件的编写者。
  • 用户:指浏览器网页的用户所设置的样式。
  • 浏览器:指浏览器默认样式。
  •  

    CSS样式采用的优先顺序:

  • 标有!important关键字声明的属性。
  • html中的CSS样式属性。
  • 作者编辑的CSS文件样式属性。
  • 用户设置的样式。
  • 浏览器默认的样式。
  •  

    选择符优先级积分:

  • 标签选择符、伪类及伪对象:优先级积分为1。
  • 类选择符、属性选择符:优先级积分为10。
  • ID选择符:优先级积分为100。
  • style属性:优先级积分为1000。
  • 其他选择符,如通配符选择符等:优先级积分为0。
  •  

    对于 !important关键字的使用一定要谨慎,切勿随便使用,避免产生不必要的问题。

     

    内嵌样式表,一般应用在访问量比较大的页面 减少对服务器的http请求数而减少对服务器的负担。

    缺点是如果需要修改,那就只能对页面进行修改, 且无法利用浏览器缓存特性。

     

    由于浏览器最后解析@import,这样很容易导致IE6的闪屏或者在打开页面的过程中无样式,直到页面加载完毕后才会加载样式的现象出现,因此 不建议使用@import。

     

       

    主要内容区域

       

    侧边栏

    因为浏览器在解析html代码时是由上而下的方式逐句分析的,因此 将mainBox放在sideBox之前的主要作用是将内容区域提前展现在浏览器中。

     

    在使用CSS样式布局页面结构时,不使用浮动那么就只能采用定位的方式进行页面布局。

     

    两列页面布局:

  • 两列定宽结构:
    要点:float、width指定、 :after清除浮动。
    效果:http://jsfiddle.net/XianfaLang/tWvph/
    前提:两列的盒模型宽度相加不能大于父元素的宽度,否则会出现错位现象。
  • 两列自适应结构:
    要点:float、width百分比、 :after清除浮动。
    效果:http://jsfiddle.net/XianfaLang/MyfXs/
  • 单列定宽-单列自适应结构:
    要点:相对定位、负边距效果:http://jsfiddle.net/XianfaLang/U3J3X/
    问题:当sideBox的内容很多时,使用绝对定位导致无法撑开父元素的高度,而且会覆盖其他元素的内容。解决方案是使用javascript重新判断父元素的高度来解决,个人觉得应该有CSS方案来解决这个问题,而不是用javascript来解决。这不,第5章就给出了一种解决方案:http://jsfiddle.net/XianfaLang/5w8MD/
  • 两列等高:
    4.1. 背景模拟:利用背景图片的平铺,在视觉效果上产生等高的感觉。
    4.2. 负边距实现(推荐):   
         原理:利用左右两个方向的外边距弥补在页面中布局出现错位的现象。    
         要点:两容器设置margin-bottom:-9999px; padding-bottom:9999px,父元素设置overflow:hidden;   
         效果:http://jsfiddle.net/XianfaLang/Q5nph/    
         问题:如果页面使用做页面跳转,将会隐藏部分文字信息。如果将背景图片放到mainBox或者sideBox底部,将看不到背景图片。
    4.3. 边框模拟:    
        要点:border-right:280px solid #AAAAAA; 绝对定位    
        效果:http://jsfiddle.net/XianfaLang/tLmTc/
    4.4. JS方式:    
        要点:使用javascript设置两列高度相同。
        效果:http://jsfiddle.net/XianfaLang/C9XcZ/
  •  

    三列或多列布局:

  • 了解width:auto与float的关系:http://jsfiddle.net/XianfaLang/nMyh4/
  • 两列定宽中间自适应结构:
    要点:浮动、负边距、mainBox的width为100%。
    效果:http://jsfiddle.net/XianfaLang/dsfKU/
  • 左侧定宽-右侧和中间自适应结构:
    要点:浮动、margin百分比、负边距。
    效果:http://jsfiddle.net/XianfaLang/nB57t/
  • 三列宽度自适应结构:同左侧定宽-右侧和中间自适应结构类似,把宽度改为百分比即可。
  • 三列等高:
    原理同两列等高类似,也有4种实现方式。这里只列举两种:
    负边距实现:http://jsfiddle.net/XianfaLang/hRq2q/
    边框模拟:http://jsfiddle.net/XianfaLang/EBww5/
  • 文本相关

  • text-indent属性可将文字往旁边“推”,如:p { text-indent: 2em; } /* 设置段落缩进2em */ 联想到负边距有“吸”功效。
  • 隐藏文字方法:
    a. 使用text-indent/line-height 将文字“推”到容器之外。
    b. visibility: hidden; 设置元素不可见,但占空间位置。
    c. display: none; 设置元素不可见,不占空间位置。
  •  

    图片相关

    PNG优点:

  • 是目前保证最不失真的格式,它汲取了GIF和JPG二者的优点,存储形式丰富。
  • 即能把图像文件压缩到极限以利于网络传输,又能保留所有与图像品质有关的信息。
  • 显示速度快。
  • 支持透明图像的制作。
  • PNG缺点:不支持动画效果。

     

    PNG-8比GIF要小一点,GIF可制作动画而PNG-8无法实现动画效果。

    PNG-24是色彩最丰富的图片,且支持alpha通道的透明,不像PNG-8和GIF只能支持全透明的图片。

    支持alpha通道的透明,可以让图片产生半透明的效果,使页面更漂亮。

     

    采用哪种格式的图片作为背景图的参考点:

  • 图片是否严重失真。
  • 哪种格式的图片是最小的。
  • 图片是否有透明效果,如果有,那是否有alpha透明效果。
  •  

    background-position注意点:

  • 任何背景图片都是先设置水平方向的定位,再设置垂直方向的定位。
  • 只有一个数值时,该数值将作用于水平方向的定位,而垂直方向的定位将以默认的50%为基准。
  • 属性值为百分比时,将以图片的中心点为基准计算其相对位置,而使用px像素值时将以图片的左上角为基准。
  • 可以使用负值。
  •  

    CSS Sprite常用来合并频繁使用的图形元素。

    CSS Sprite注意点:

  • 固定容器的宽度和高度。
  • 超出容器的宽度和高度部分的背景图片需要隐藏。
  • 背景图片在合并时,需要考虑每张图片的用途。
  •  

    图文混排:给《CSS那些事儿》读书笔记_html/css_WEB-ITnose设置float: left;

     

    三种列表:

  • 无序列表:
    • ...
  • 有序列表:
    1. ...
    2. 自定义列表:
      标题
      内容
    3.  

      行内元素不具备宽高属性,只有将其转化为块级元素后才具备宽高属性。

      CSS样式中能将块元素以横向排列方式排列的只有定位( position)和浮动( float)两种方式。

       

      CSS实现表现效果,javascript实现行为效果。

       

      CSS样式需要大家 不断去摸索,不断尝试新的内容才会使每个人自身对CSS样式的理解及处理问题的能力得到提升。

       

      列表示例:

    4. 二级菜单导航(横排):
      要点:整体宽度、一级列表宽高和浮动、二级列表绝对定位。
      效果:http://jsfiddle.net/XianfaLang/4CPdG/
    5. 图文列表信息:
      要点:整体宽度、浮动。
      效果:http://jsfiddle.net/XianfaLang/KM7Ua/
    6.  

      理解、分析、总结是必须要进行的几个步骤:

    7. 理解每个例子中所讲解的步骤及实现的方法。
    8. 分析每个方法的可用性及是否有其他更好的实现方法。
    9. 总结在每次实践中所得到的经验。
    10.  

      在IE浏览器中,按钮与文字之间的垂直对齐关系 如同 复选框与文字之间的对齐关系,需要利用 vertical-align对其进行调整。

       

      表格相关

      border-collapse:检索或设置表格的行和单元格的边是否合并到一起。默认值:separate。合并:collapse。

      可使用相邻选择符实现隔行换色。个人觉得此知识点,主要是了解相邻选择符的应用,实际应用性不大。

      日历表的制作: http://jsfiddle.net/XianfaLang/Z4wVQ/2/

       

      将table标签用于显示数据结构,而不是用于页面布局。

       

      float是将页面中的元素在水平方向上 并排显示的,而 position却是将页面的元素以 叠加的方式显示的。

       

      使用CSS滤镜之前,需要思考的几个问题:

    11. 页面中使用CSS滤镜的次数会不会过多。
    12. 使用CSS滤镜是不是会占用较多的CPU。
    13. 能否使用图片直接代替由CSS滤镜产生的效果。
    14. 使用CSS滤镜后,会不会影响到页面中的内容操作。
    15.  

      使用iframe实现的“选项卡”逐渐演变为将页面内容集于一体,通过JS切换显示内容。

      实现tab选项卡要把握html结构与css样式之间的微妙关系。

       

      负边距与层叠效果的应用:怪异的导航菜单。

       

      IE浏览器会在每个列表li之间产生几个像素的空间,可用float:left;使多余的几个像素“消失”。

       

      分析实例最好的方法就是 将其简单化,从根本上去了解问题、分析问题。

       

      清除浮动作用:

    16. 解决页面错位现象。
    17. 解决子元素浮动导致父元素无法自适应子元素高度的问题。
    18.  

      清除浮动的常用方法:

          1. clear属性--常用clear: both;

          2. 添加额外标签:

          3. 使用 br标签和其自身的 html属性:

          4. 父元素设置: overflow: hidden; *zoom:1; (在IE6中还需要触发 hasLayout ,例如 zoom:1)

          5. 父元素设置: display: table;

          6. 父元素设置  :after 伪类 (推荐):

      .clearFix:after {    clear: both; /* 清除伪类层以上的浮动 */    display: block;   /* 使生成的元素以块级元素显示,占满剩余空间; */    visibility: hidden; /* 设置伪类层内容为块级元素且不可见 */       height: 0;    line-height: 0; /* 设置伪类层中的高度和行高为0 */    content: " "; /* 将伪类层中的内容清空 */}.clearFix {    zoom: 1; /* 针对IE浏览器产生hasLayout效果清除浮动 */}

        

      结构分析是页面制作的第一步。

       

      用户习惯于滚动条上下移动,而不是左右移动。

       

      如果图片很大,可将其切成两张图片。

       

      使用语义的XHTML标签优点:

    19. 当样式无法正常加载时,依然会显示条理清晰的文档结构。
    20. 增加SEO(搜索引擎优化)性能。
    21. 加强与程序开发之间的配合。
    22. 提高页面后期维护的工作效率。
    23.  

      分享自己的作品,对批评你作品的人表示感谢,因为他在告诉你如何才能做的更好。

       

      怎么提高自身编写代码的能力:

    24. 多看CSS手册。
    25. XHTML代码中每个标签的含义。
    26. 善于分析CSS布局网站的处理方式。
    27. 多做CSS布局网站的练写。
    28. 学会使用网络搜索引擎。
    29. 善于利用辅助工具解决布局问题(Firebug, Chrome devtool)。
    30. 善于总结经验、整理笔记(这里推荐大家使用有道云笔记,PC/Mobile/Web都有,而且在微信中复制链接可直接同步云笔记,这样便于大家利用碎片时间阅读笔记)。
    31. 收藏和使用代码片段。
    32. 성명
      본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
      HTML : 구조, CSS : 스타일, 자바 스크립트 : 동작HTML : 구조, CSS : 스타일, 자바 스크립트 : 동작Apr 18, 2025 am 12:09 AM

      웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. 1. HTML은 웹 페이지 구조를 정의하고, 2. CSS는 웹 페이지 스타일을 제어하고 3. JavaScript는 동적 동작을 추가합니다. 그들은 함께 현대 웹 사이트의 프레임 워크, 미학 및 상호 작용을 구축합니다.

      HTML의 미래 : 웹 디자인의 진화 및 트렌드HTML의 미래 : 웹 디자인의 진화 및 트렌드Apr 17, 2025 am 12:12 AM

      HTML의 미래는 무한한 가능성으로 가득합니다. 1) 새로운 기능과 표준에는 더 많은 의미 론적 태그와 WebComponents의 인기가 포함됩니다. 2) 웹 디자인 트렌드는 반응적이고 접근 가능한 디자인을 향해 계속 발전 할 것입니다. 3) 성능 최적화는 반응 형 이미지 로딩 및 게으른로드 기술을 통해 사용자 경험을 향상시킬 것입니다.

      HTML vs. CSS vs. JavaScript : 비교 개요HTML vs. CSS vs. JavaScript : 비교 개요Apr 16, 2025 am 12:04 AM

      웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. HTML은 컨텐츠 구조를 담당하고 CSS는 스타일을 담당하며 JavaScript는 동적 동작을 담당합니다. 1. HTML은 태그를 통해 웹 페이지 구조와 컨텐츠를 정의하여 의미를 보장합니다. 2. CSS는 선택기와 속성을 통해 웹 페이지 스타일을 제어하여 아름답고 읽기 쉽게 만듭니다. 3. JavaScript는 스크립트를 통해 웹 페이지 동작을 제어하여 동적 및 대화식 기능을 달성합니다.

      HTML : 프로그래밍 언어입니까 아니면 다른 것입니까?HTML : 프로그래밍 언어입니까 아니면 다른 것입니까?Apr 15, 2025 am 12:13 AM

      Htmlisnotaprogramminglanguage; itisamarkuplanguage.1) htmlstructuresandformatswebcontentusingtags.2) itworksporstylingandjavaScriptOfforIncincivity, WebDevelopment 향상.

      HTML : 웹 페이지 구조 구축HTML : 웹 페이지 구조 구축Apr 14, 2025 am 12:14 AM

      HTML은 웹 페이지 구조를 구축하는 초석입니다. 1. HTML은 컨텐츠 구조와 의미론 및 사용 등을 정의합니다. 태그. 2. SEO 효과를 향상시키기 위해 시맨틱 마커 등을 제공합니다. 3. 태그를 통한 사용자 상호 작용을 실현하려면 형식 검증에주의를 기울이십시오. 4. 자바 스크립트와 결합하여 동적 효과를 달성하기 위해 고급 요소를 사용하십시오. 5. 일반적인 오류에는 탈수 된 레이블과 인용되지 않은 속성 값이 포함되며 검증 도구가 필요합니다. 6. 최적화 전략에는 HTTP 요청 감소, HTML 압축, 시맨틱 태그 사용 등이 포함됩니다.

      텍스트에서 웹 사이트로 : HTML의 힘텍스트에서 웹 사이트로 : HTML의 힘Apr 13, 2025 am 12:07 AM

      HTML은 웹 페이지를 작성하는 데 사용되는 언어로, 태그 및 속성을 통해 웹 페이지 구조 및 컨텐츠를 정의합니다. 1) HTML과 같은 태그를 통해 문서 구조를 구성합니다. 2) 브라우저는 HTML을 구문 분석하여 DOM을 빌드하고 웹 페이지를 렌더링합니다. 3) 멀티미디어 기능을 향상시키는 HTML5의 새로운 기능. 4) 일반적인 오류에는 탈수 된 레이블과 인용되지 않은 속성 값이 포함됩니다. 5) 최적화 제안에는 시맨틱 태그 사용 및 파일 크기 감소가 포함됩니다.

      HTML, CSS 및 JavaScript 이해 : 초보자 안내서HTML, CSS 및 JavaScript 이해 : 초보자 안내서Apr 12, 2025 am 12:02 AM

      WebDevelopmentReliesonHtml, CSS 및 JavaScript : 1) HtmlStructuresContent, 2) CSSSTYLESIT, 및 3) JAVASCRIPTADDSINGINTERACTIVITY, BASISOFMODERNWEBEXPERIENCES를 형성합니다.

      HTML의 역할 : 웹 컨텐츠 구조HTML의 역할 : 웹 컨텐츠 구조Apr 11, 2025 am 12:12 AM

      HTML의 역할은 태그 및 속성을 통해 웹 페이지의 구조와 내용을 정의하는 것입니다. 1. HTML은 읽기 쉽고 이해하기 쉽게하는 태그를 통해 컨텐츠를 구성합니다. 2. 접근성 및 SEO와 같은 시맨틱 태그 등을 사용하십시오. 3. HTML 코드를 최적화하면 웹 페이지로드 속도 및 사용자 경험이 향상 될 수 있습니다.

      See all articles

      핫 AI 도구

      Undresser.AI Undress

      Undresser.AI Undress

      사실적인 누드 사진을 만들기 위한 AI 기반 앱

      AI Clothes Remover

      AI Clothes Remover

      사진에서 옷을 제거하는 온라인 AI 도구입니다.

      Undress AI Tool

      Undress AI Tool

      무료로 이미지를 벗다

      Clothoff.io

      Clothoff.io

      AI 옷 제거제

      AI Hentai Generator

      AI Hentai Generator

      AI Hentai를 무료로 생성하십시오.

      뜨거운 도구

      MinGW - Windows용 미니멀리스트 GNU

      MinGW - Windows용 미니멀리스트 GNU

      이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

      SublimeText3 영어 버전

      SublimeText3 영어 버전

      권장 사항: Win 버전, 코드 프롬프트 지원!

      SublimeText3 중국어 버전

      SublimeText3 중국어 버전

      중국어 버전, 사용하기 매우 쉽습니다.

      Eclipse용 SAP NetWeaver 서버 어댑터

      Eclipse용 SAP NetWeaver 서버 어댑터

      Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

      PhpStorm 맥 버전

      PhpStorm 맥 버전

      최신(2018.2.1) 전문 PHP 통합 개발 도구