小增HTML+CSS知识总结

150 阅读6分钟

HTML+CSS阶段总结

主要总结了这个阶段来所学习的一些HTML和CSS中的重难点和记忆不太深刻的内容

HTML中的易错点

块级元素

  1. div
  2. p
  3. ul>li
  4. ol>li
  5. dl>dt+dd

行内块元素

行内块有块级元素的特点,又有行内元素的特点,可以一行显示多个,又可以设置宽高

  1. img
  2. input
  3. buttom
  4. textarea

行内元素

  1. span
  2. a
  3. i(字体倾斜)
  4. b (加粗)
  5. em(字体倾斜)
  6. u(下划线)
  7. s(删除线)
  8. strong(加粗)
  9. ins(下划线)
  10. del(删除线)

表格表单

  1. table(表格)
    1. 表头(th)
    2. 表格标题(caption)
    3. 清除表格之间的间隙(collapse:collapse)
    4. 合并单元格(col跨列合并,row跨行合并)
  2. form(表单)
    1. input单元格
    2. select下拉菜单(selected默认展示)
    3. radio单选框(默认选中checked)
    4. checkbox复选框
    5. file上传文件(multiple选择多个文件)
    6. lable标签(为了给用户更好的体验,让文字和按钮相连接,点那个都可以选中)
    7. textarea文本域(cols列,rows行)

选择器

选择器注意有个权重比分别是!important>内联样式>id选择器>类选择器>标签选择器>通配符>继承

注意使用选择器时选择器的计算

  1. class类选择器
  2. id选择器(一个页面只能有一个id属性值,唯一的不可重复的,一个id选择器里面只能有一个id属性值,一个id选择器只能选中一个标签)
  3. 标签选择器(span、div、p、a....)
  4. *通配符选择器
  5. 复合选择器
    1. 后代选择器(选择器1 选择器2{css.....})
    2. 子代选择器(选择器1>选择器2{css....})
  6. 并集选择器(选择器1,选择器2)
  7. 交集选择器(选择器1选择器2{css...})
  8. hover伪类选择器

CSS中的重点、难点

  1. 浮动

  2. 定位

  3. 三大特性

  4. 属性

主要结合CSS中所理解较为困难,学习掌握还不太熟练的部分进行笔记

浮动

浮动主要分为左浮动和右浮动,浮动以后所浮动的盒子(div)就脱离了标准流,相当于飘在了元素的上方,不占据了位置,但是会覆盖下面所移上来的其他元素,还会使父元素造成没有高度的影响(如果父元素没有设置高度的话,完全是由子元素高度撑起来的情况下),浮动的作用是为了让块级元素能在同一行中排列,为了更好的布局。

浮动的特点:

  1. 浮动元素会脱离标准流,在标准流中不占位置
  2. 比标准流高半个级别,会覆盖标准流中的元素
  3. 浮动找浮动,下一个浮动元素会跟在上一个浮动元素的后面左右浮动
  4. 浮动有特殊的显示效果
    1. 一行可以多个
    2. 可以设置宽高

注意点:浮动的元素不能通过text-align:center;margin: 0 auto;来居中。

  1. 左浮动float:left;
  2. 右浮动float:right;

清除浮动所带来的影响

  • 直接给父元素添加高度
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>清除浮动的方法一</title>
    <style>
        .father {
            height: 400px;
            width: 400px;
            background-color: pink;
        }
        
        .son {
            float: left;
            width: 100px;
            height: 400px;
            background-color: blue;
        }
    </style>
</head>

<body>
    <!-- 清除浮动的方法--1.直接设置父元素高度
            特点:
                优点:简单粗暴,方便
                缺点:有些布局中不能固定父元素高度。如:新闻列表、京东推荐模块。 -->
    <div class="father">
        <div class="son"></div>
    </div>
</body>

</html>
  • 额外标签法
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>清除浮动的方法二</title>
    <style>
        .father {
            width: 400px;
            background-color: pink;
        }
        
        .son {
            float: left;
            width: 100px;
            height: 400px;
            background-color: blue;
        }
        /* 2.给添加的块级元素设置clear:both */
        
        .clear {
            clear: both;
        }
    </style>
</head>

<body>
    <!-- 额外标签法:
        操作:
            1.在父元素内容的最后添加一个块级元素
            2.给添加的块级元素设置clear:both
        特点:
            缺点:会在页面中添加额外的标签,会让页面的HTML结构变得复杂 -->
    <div class="father">
        <div class="son"></div>
        <!-- 1.在父元素内容的最后添加一个块级元素 -->
        <div class="clear"></div>
    </div>
</body>

</html>
  • 单伪元素清除法
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>清除浮动方法三</title>
    <style>
        .father {
            width: 400px;
            background-color: pink;
        }
        
        .son {
            float: left;
            width: 100px;
            height: 400px;
            background-color: blue;
        }
        /* 1.基本写法 */
        
        .clearfix::after {
            content: '';
            display: block;
            clear: both;
        }
    </style>
</head>

<body>
    <!-- 单伪元素清除法
        操作:用伪元素替代了额外标签
        1.基本写法
        .clearfix::after {
            content: '';
            display: block;
            clear: both;
        }
        2.补充写法
        .clearfix::after{
            content: '';
            display: block;
            clear: both;
            补充代码:在网页中看不到伪元素
            height: 0;
            visibility: hidden;
        }
        特点:
            优点:项目中使用,直接给标签加类即可清除浮动 -->
    <div class="father clearfix">
        <div class="son"></div>
    </div>
</body>

</html>
  • 双伪元素清除法
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>双伪元素清除法</title>
    <style>
        .father {
            width: 400px;
            background-color: pink;
        }
        
        .son {
            float: left;
            width: 100px;
            height: 400px;
            background-color: blue;
        }
        /* 双伪元素清除法 */
        /* 用双为元素清除法可以解决margin的塌陷 */
        
        .clearfix::before,
        .clearfix::after {
            content: '';
            display: table;
        }
        
        .clearfix::after {
            clear: both;
        }
    </style>
</head>

<body>
    <!-- 双伪元素清除法
        操作:
            .clearfix::before,
            .clearfix::after {
                content: '';
                display: table;
            }
            .clearfix::after {
                clear: both;
            }
        特点:
            优点:项目中使用,直接给标签加类即可清除浮动 -->
    <div class="father clearfix">
        <div class="son"></div>
    </div>
</body>

</html>
  • 给父元素设置overflow:hidden
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>给父元素设置overflow:hidden</title>
    <style>
        .father {
            width: 400px;
            background-color: pink;
            overflow: hidden;
        }
        
        .son {
            float: left;
            width: 100px;
            height: 400px;
            background-color: blue;
        }
    </style>
</head>

<body>
    <!-- 给父元素设置overflow:hidden
    操作:
        1.直接给父元素设置overflow:hidden
    特点:
        优点:方便 -->
    <div class="father">
        <div class="son"></div>
    </div>
</body>

</html>

定位

定位,在我们平常布局当中,仅仅依靠浮动还有盒子排序是远远不够的,还应当配合定位来完整我们页面的内容

定位的作用:

​ 让你的元素框出现在你想让他出现的位置,能够更好的布局,让用户有着更好的观看体验。

定位使用场景:

  1. 让子元素相对父元素进行定位移动(子绝父相)
  2. 水平居中
  3. 水平垂直都居中

定位的属性(position):

  • 静态定位(static)

设置方位属性没有效果,默认属性

positon: static;
  • 相对定位(relative)

相对于自己原来的位置进行定位(占位置),可以设置偏移量,一般和绝对定位进行使用。

position: relative;
  • 绝对定位(absolute)

可以分为两种情况,1、如果祖先元素没有设置定位,那么它相对于浏览器来进行定位。2、如果祖先元素有定位,它根据最近的祖先元素的位置来进行定位。(脱标,不占位置,脱标之后的元素要,宽度默认由内容撑开)

position: absolute;
  • 固定定位(fixed)

永远相对于浏览器来进行定位(脱标,不占位置,脱标之后的元素要,宽度默认由内容撑开)

position: fixed;

CSS三大特性

  1. 继承性
  2. 层叠性
  3. 优先级

继承性

子元素默认继承父元素的样式效果

常见的继承样式:

  1. color
  2. font-相关的属性
  3. text-相关的属性
  4. line-height:行高

继承的小应用:

  1. 去除无序列表前面的小圆点ul{list-style:none;}
  2. 统一不同浏览器的默认字体大小(不同浏览器可能默认字体大小不一样,这时候可以给body设置一个font-size值统一文字大小)

继承失效的情况:

  1. a标签颜色的继承(继承下来了,被浏览器默认设置覆盖了)
  2. h系列标签的font-size会继承失效(继承下来了,被浏览器默认设置覆盖了)
  3. div的高度不能继承,宽度可以(默认div独占一行)

层叠性

注意:只有当优先级相同时,才会比较层叠

  1. 给同一个元素设置相同的属性时,写在离HTML结构最近的生效
  2. 给同一个元素设置不同的样式时,写的样式会叠加

优先级

当有两个选择器同时选中一个标签时,这时需要比较那一个选择器的优先级更高

属性

css中有许多属性来需要我们记住并使用它去优化我们的页面,总结了一些容易忘记和比较难理解的知识

  • overflow(设置内容超出部分的显示效果)
overflow: visible;	/*超出部分可见*/
overflow: hidden;	/*超出部分隐藏*/
overflow: scroll;	/*显示滚动条*/
overflow: auto;	/*根据内容是否超出来显示滚动条*/
  • 元素本身隐藏属性
visibility: hidden;	/*元素隐藏,占位置*/
display: none; /*元素隐藏,不占位置*/
  • 图片(装饰)垂直对齐方式
vertical-align: baseline; /*基线对齐*/
vertical-align: top; /*顶部对齐*/
vertical-align: middle; /*中部对齐*/
vertical-align: bottom; /*底部对齐*/