美文网首页web基础学习之路
复习html和css知识笔记

复习html和css知识笔记

作者: 果木山 | 来源:发表于2019-02-18 23:43 被阅读0次

html和css复习笔记

  • css样式的展现,是通过判断设置样式的权值来选择的,其中标签选择器权值为1,类选择器为10,id选择器为100;
  • 块状元素,内联元素,内联块状元素三者的差别:
    • 块状元素:
      • 独占一行;
      • 宽度为父级宽度的100%;
      • 宽,高,行高,顶边距(marginTop),底边距(marginBottom),均可设置;
    • 内联元素:
      • 与其他元素在一行;
      • 宽,高,行高,顶底边距,均不可设置;
      • 宽高为它包含的文字或图片的宽高;
    • 内联块状元素:(input)
      • 与其他元素在一行;
      • 宽,高,行高,顶底边距,均可设置;
  • border简写:border: 1px solid red;;分解:border-width;border-style;border-color;
  • css盒子模型:width height padding border margin;
  • css布局模型:流动模型(flow),浮动模型(float),层模型(layer)
    • 流动模型:块状元素自上而下垂直分布;内联元素,内联块状元素自左而右水平分步;
    • 浮动模型:脱离文档流,左右浮动;
    • 层模型:绝对定位,相对定位,固定定位,脱离文档流;
      • 绝对定位:相对于其最接近的一个具有定位属性的父包含块进行绝对定位;定位属性可以是相对定位,也可以是绝对定位;如果没有定位属性,则相对于body元素;
      • 相对定位:相对于自己的位置定位,原来的位置保留;
      • 固定定位:相对于视图(屏幕内的网页窗口)定位;
  • 代码:
    • 斜体设置:font-style: italic,去除斜体属性:font-style: normal;
    • 字体和行高的缩写:font-size: 20px;line-height: 1.5em;缩写为:font: 20px/1.5em;
  • 单位:
    • em是指跟本元素的fontSize值有关;如果设置fontSize单位为em,则与其父级元素的fontSize有关;
  • 元素的水平居中问题:
    • 内联元素,内联块状元素:给父级元素设置text-align:center;
    • 块状元素:
      • 定宽块状元素:设置margin: 0 auto;即设置margin-left和margin-right值为auto;
      • 不定宽块状元素;
        • 利用table标签的长度自适应特点;
          • 用table,tbody,tr,td标签将不定宽的块状元素包裹起来;
          • table标签设置margin: 0 auto;,居中对齐;
        • 将块状元素转化为内联块状元素,然后给其父级设置text-align: center居中对齐;
  • 层级z-index
    • 普通元素:没有定位属性,设置层级值是无效的;层级关系会根据流动顺序进行判断,后面的元素会覆盖前面的元素;
    • 定位元素:设置定位属性的元素,设置层级才会有效;
      • 如果不设置层级,定位元素会按照流动顺序进行覆盖,后面的定位元素覆盖前面的定位元素;
      • 如果设置层级,根据层级的大小进行覆盖;层级为负值,则会被普通元素覆盖;
    • 默认情况下定位元素会覆盖普通元素;
  • 板块布局
    • 简单的列布局:
      • 普通的两列布局,三列布局:通过定宽和设置浮动来实现几列布局,设置宽度为a%,来进行比例控制,可根据屏幕的大小,自由伸缩;
    • 特殊的列布局:利用定位(或浮动)来实现
      • 一侧定宽,一侧自适应宽度的列布局
        • 两列布局必须设置一个容器,容器的宽度为100%,即浏览器窗口的宽度;
        • 定宽的布局通过定位实现:设置绝对定位,容器设置相对定位,通过left和top进行定位;
        • 定宽的布局也可以通过浮动来实现;只需设置左浮动;
        • 自适应宽度的布局,宽度不设置,设置高度等,最终要的是要设置margin-left,其值为定宽布局的宽度;
  • padding解读
    • 对于内联元素,设置padding,在水平方向,能够设置上,距离会增加,垂直方向上,间距不会增加,不会影响垂直方向上的其他元素,但是自身的背景色在垂直方向会扩充;
    • padding设置的百分比均是相对于其宽度而言,如:height:50%;即,高度值为宽度的百分之五十;
    • 利用padding获取一个正方形的视图,设置padding: 50%;则可获得一个正方向视图;
      • 利用绝对定位(四方位均为0)和margin:auto来实现,水平和垂直方向上的同时居中对齐;
      • 代码:
       <!DOCTYPE html>
       <html lang="en">
       <head>
           <meta charset="UTF-8">
           <title>padding</title>
           <style>
               *{
                   margin: 0;
                   padding: 0;
               }
               .container{
                   padding: 50%;
                   position: relative;
               }
               .box{
                   width: 200px;
                   height: 200px;
                   position: absolute;
                   left: 0;
                   right: 0;
                   top: 0;
                   bottom: 0;
                   background: url("img/p1.jpg") center no-repeat;
                   background-size: auto 100%;
                   margin: auto;
               }
           </style>
       </head>
       <body>
       <div class="container">
           <div class="box"></div>
       </div>
       </body>
       </html>
      
    • 背景色的填充设置:background-clip
      • border-box:填充到边框以内,包含边框;默认值;
      • padding-box:填充到padding以内,包含padding区域;
      • content-box:填充到内容区域,不包含padding;用于padding作为分界线,内容区域颜色填充;
  • margin解读
    • padding也可实现上下留白,但是兼容性不好,只能在chrome中可以实现,而margin的兼容性很好,使用其可以上下留白。
    • margin设置的百分比值
      • 普通元素:百分比是相对于容器的宽度计算的;
      • 定位元素:百分比是相对于第一个定位祖先元素宽度计算的;
      • 实际开发中的应用:宽高2:1的自适应矩形;代码:div{margin: 50%;};
    • 元素的垂直居中问题:
      • 通过代码writing-mode: vetical-lr;更改流为垂直方向,此时垂直方向才会被充满,然后设置垂直方向上的auto,元素才会垂直居中,由于更改了流动方向,所以,水平方向不能充满,不能通过auto居中;
      • 利用绝对定位的拉伸特性;让元素水平,垂直方向全部填满;然后设置宽高值,进行margin:auto,就可以实现水平和垂直方向上的同时居中;
  • overflow解读
    • 浏览器的滚动条,是设置在html标签上,不是设置在body标签上;如果清除浏览器的滚动条,则给html标签设置overflow:hidden即可;
    • 触发BFC(块状格式化上下文)
      • 清除浮动带来的父级元素的高度塌陷问题;
      • 父级元素与第一个子元素会出现margin重叠问题,添加overflow可解决重叠问题;
    • overflow的失效问题
      • overflow设置在绝对定位元素和其父级包含块之间时,会失效;父级包含块可以是body;
      • 解决失效问题
        • overflow设置的元素自身设置定位属性,作为绝对定位元素的父包含块;
        • overflow设置的元素的子元素为父包含块,即用一个子元素div包裹上绝对定位元素;
    • 依赖overflow的样式表现
      • resize拉伸特性,必须依赖overflow才能呈现;
        • resize的三个特性:horizontal水平拉伸;vertical垂直拉伸;both水平垂直方向均可拉伸;
        • overflow的设置,除了visible不能设置,其他的都能设置,如auto,scroll,hidden;
        • resize拖拽标志默认为17像素*17像素;
      • ellipsis省略特性,必须依赖overflow:hidden才能呈现;
        • 代码:
         div{
            width: 200px;
            height: auto;
            text-overflow: ellipsis;
            white-space: nowrap;
            overflow: hidden;
          }
        
    • 锚点技术:css实现锚点定位和JS实现锚点定位
      • css实现锚点定位:分为两种
        1)URL地址中的锚链与锚点元素对应并有交互行为:常见的a标签中的href锚链,id锚点;
        2)可focus的锚点元素处于focus状态:label触发input的focus状态;
      • JS实现锚点定位:通过JS调整scrollTop实现;
      • 参考链接:css实现锚点定位
  • absolute解读
    • 无依赖的absolute功能更强大:不依赖relative,不设置left/right/top/bottom,通过margin-left/margin-right来实现位置移动;
    • 特性:1)脱离文档流;2)宽高不占据任何尺寸;3)跟随前面元素显示;
    • 实际应用
      1、通过absolute实现图片的无依赖定位;
      2、通过absolute实现居中和边缘定位:通过添加&nbsp空格 ,定位元素为设置为内联元素或内联块状元素;然后在父级容器设置text-align:center/right来居中或边缘定位,然后定位元素设置margin-left和margin-top为负值,来实现位置移动;
      3、各种对齐溢出技巧实例
      + 通过绝对定位使星标不占据位置;不影响文档正常显示;
      + 通过绝对定位可以在任意位置添加图标和图片;因其不占据任何尺寸;
      + 通过绝对定位可使文字溢出容器;
    • 充满全屏代码:position: absolute;left:0;right:0;top:0;bottom:0;
  • float解读
    • 浮动的两大特性:1)包裹性;2)破坏性;(容器高度塌陷)
    • 清除浮动对父级元素的影响:两大基本方法
      • 父级元素BFC:与外界隔绝,不会出现margin重叠现象;即设置overflow;
      • 在父级元素底部,添加块状元素,设置代码clear:both;跟外界元素有关联,会出现margin重叠现象;
    • clear应用形式
      • 在父级元素底部添加空的div,div中设置clear:both;缺点:会出现裸露的div,影响代码美观;
      • 添加after伪类元素;缺点:IE6/IE7不支持;
      • 兼容的清除浮动的代码:其中clearfix类名添加到设置浮动元素的父级元素标签上;
       //IE6/IE7
       .clearfix{
           *zoom:1;    
        }
       //IE8+
       .clearfix:after{
           display: block;
           content: "";
           height: 0;
           overflow: hidden;
           clear: both;
        }
      
      • 实际开发中的简化代码
       //IE6/IE7
       .clearfix{
           *zoom:1;//添加*的目的是,只有在IE7及以下浏览器中才会支持非字母数字前缀的属性,在IE8+中不支持;    
       }
       //IE8+
       .clearfix:before,.clearfix:after{
           content:"";
           display:table;
       }
       .clearfix:after{
           clear:both;
       }
      
  • line-height解读
    • line-height的取值:
      • number类型,即line-height: 1.5指的是当前元素的font-size大小的1.5倍;
      • 长度值:具体的长度和百分比值,如1.5em,1.5rem,150%;
    • 取值1.5和150%/1.5em的区别:
      • line-height: 1.5指的是所有可继承的元素根据自身的字体大小重新计算;
      • line-height: 150%/1.5em指的是当前元素根据自身的字体大小计算出数值,然后继承给子级元素;
    • 行高与图片
      • 默认情况下,图片的下边缘会跟文字的基线对齐;所以会出现图片下方有留白(IE7以下不存在);
      • 解决方法:
        • 给图片的父级容器设置行高为0;
        • 给图片设置vertical-align: bottom;
        • 图片块状化,设置display:block;
  • vertical-align解读
    • vertical-align百分比值是根据line-height值计算的;
    • 如果未设置行高,父级容器的基线不在中心线上,会在第一行文字的基线上,设置行高与高度值相同,基线的位置才会在容器中心线附近;
    • 支持vertical-align的有inline元素和inline-block元素,block元素不支持;
    • 浮动和定位会是元素block化,不支持vertical-align;
    • 取值:
      • 长度或百分数
      • top/bottom/middle
        • top: 元素的顶部与父级容器的顶部对齐,跟容器的高度有关;
        • bottom: 元素的底部与父级容器的底部对齐;
        • middle: 元素的中心线与父级容器基线上1/2x-height对齐;即会与父级容器的中心线向下偏离,文字的越大,向下偏离越大,解决偏离问题,则设置font-size值为0;要想使元素垂直居中,必须设置行高与高度相同;
      • text-top/text-bottom:比较的是元素的盒子顶底部与父级容器的content-area内容区域的顶底部对齐;
        • 父级容器的content-area内容区域的高度,只与其font-size和font-family有关;与其他的无关;
        • 元素的对齐方式只与父级容器的content-area有关,与父级容器的行高,和周围元素的垂直对齐属性无关;
        • 实际应用:图标与文字的对齐效果
          1. 采用基线对齐的方式,问题:图标会明显高于文字;
          2. 采用middle对齐方式,问题:会有偏离,跟文字的大小有关,文字越大,偏离越明显,而且兼容性不好;
          3. 采用top/bottom对齐方式,问题:会受父级容器高度的影响;
          4. 采用text-bottom对齐方式,图标不会受父级容器高度的影响,也不会受到其他元素的影响;
      • sub/super:上下标设置
    • 注:容器内元素的设置只与父级容器元素有关,各元素之间不会互相影响;
    • 注:尽量不要使用middle,兼容性不好,可以使用负值,进行垂直定位;

相关文章

  • 复习html和css知识笔记

    html和css复习笔记 css样式的展现,是通过判断设置样式的权值来选择的,其中标签选择器权值为1,类选择器为1...

  • 收集前端学习资料

    前端的一些学习资源 html和css代码规范 前端知识体系 前端网址大全 学习CSS布局 通用 CSS 笔记、建议...

  • 复习HTML和CSS

    A、数据、服务器 1、上网就是请求数据,数据缓存。 2、服务器 服务器上面存放着网页相关的文件:包括HTML、CS...

  • HTML+CSS入门篇(上)

    脑图复习 Html和CSS的关系 学习web前端开发基础技术需要掌握:HTML、CSS、JavaScript语言。...

  • Css渐变

    最近看到渐变的东西,然后复习下。截图效果 代码部分 HTML CSS (算是个人复习笔记了。各位看官请随意)这里卿...

  • 一周一章前端书·第12周:《HTML与CSS进阶教程》S01E0

    第01章 HTML基础知识 1.1 HTML和CSS的进阶简介 HTML、CSS、JavaScript是前端最核心...

  • CSS布局

    HTML CSS + DIV实现整体布局必备知识利用HTML和CSS实现常见的布局 单列布局 css 实现竖直居中...

  • js操作样式

    CSS HTML 笔记

  • 下一阶段目标

    1复习html+css 一号店和京东页面 2学习js并做题,顺便做项目 时间有点紧 计算机网络的若干知识复习

  • CSS学习第一天--样式

    HTML基础知识已经学习完了,接下来就学习CSS设置样式的知识了,笔记练习会持续更新。。。。 CSS样式--内联式...

网友评论

    本文标题:复习html和css知识笔记

    本文链接:https://www.haomeiwen.com/subject/yaetyqtx.html