css 经验记录

CSS的三大特性

CSS有三个非常重要的三个特性:层叠性、继承性、优先级。

1. 层叠性

相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式。层叠性主要解决样式冲突的问题。

层叠性原则:

  • 样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式
  • 样式不冲突,不会层叠

继承性

现实中的继承:我们继承了父亲的姓。

CSS中的继承:子标签会继承父标签的某些样式,如文本颜色和字号。简单的理解就是:子承父业。

可以继承的有:1、字体系列,font-family、font-weight; 2、文本系列,text-indent、color;3、元素可见性,visibility;4、列表布局,list-style;5、光标,cursor。

  • 恰当地使用继承可以简化代码,降低CSS样式的复杂性
  • 子元素可以继承父元素的样式(text-,font-,line-这些元素开头的可以继承,以及color属性)

行高的继承性:

  • 行高可以跟单位也可以不跟单位
  • 如果子元素没有设置行高,则会继承父元素的行高为1.5
  • 此时子元素的行高是:当前子元素的文字大小* 1.5
  • body行高1.5这样写法最大的优势就是里面子元素可以根据自己文字大小自动调整行高

 

继承失效的特殊情况

 

如果元素有浏览器默认样式,此时继承性依然存在,但是优先显示浏览器的默认样式
1. a标签的color会继承失效
其实color属性继承下来了,但是被浏览器默认设置的样式给覆盖掉了
2. h系列标签的font-size会继承失效
其实font-size属性继承下来了,但是被浏览器默认设置的样式给覆盖掉了
3. div的高度不能继承,但是宽度有类似于继承的效果
 

 

 

3. 优先级

当同一个元素指定多个选择器,就会有优先级的产生。

  • 选择器相同,则执行层叠性
  • 选择器不同,则根据选择器权重执行

 

 

浮动

页面布局的三种方式 标准流 浮动 定位

 

浮动元素会脱离标准流(脱标:浮动的盒子不再保留原先的位置) 浮动元素不会占据位置:其后面的标签会占据其之前的位置 浮动元素不会影响其前面的标签

为什么需要清除浮动? 父级没高度。 子盒子浮动了。 影响下面布局了,我们就应该清除浮动了。

 

1、清除浮动本质是? 清除浮动的本质是清除浮动元素脱离标准流造成的影响 2、清除浮动策略是? 闭合浮动. 只让浮动在父盒子内部影响,不影响父盒子外面的其他盒子. 3、额外标签法? 隔墙法, 就是在最后一个浮动的子元素后面添 4、加一个额外标签, 添加 清除浮动样式. 实际工作可能会遇到,但是不常用

请使用双伪元素来清除浮动。

.clearfix:before,.clearfix:after { content:""; display:table; } .clearfix:after { clear:both; } .clearfix { *zoom:1; }

在css中预定义好clearfix类,定义after和before两个伪元素 为无法被浮动子元素撑开高度的父标签添加该类

 

 

 

 

1 块级元素
属性:display:block
显示特点:
1. 独占一行(一行只能显示一个)
2. 宽度默认是父元素的宽度,高度默认由内容撑开
3. 可以设置宽高
Ø 代表标签:
div、p、h系列、ul、li、dl、dt、dd、form、header、nav、footer……
 
行内元素
属性:display:inline
Ø 显示特点:
1. 一行可以显示多个
2. 宽度和高度默认由内容撑开
3. 不可以设置宽高
Ø 代表标签:
a、span 、b、u、i、s、strong、ins、em、del
 
 

行内块元素
属性:display:inline-block
Ø 显示特点:
1. 一行可以显示多个
2. 可以设置宽高
Ø 代表标签:
• input、textarea、button、select……
• 特殊情况:img标签有行内块元素特点,但是Chrome调试工具中显示结果是inline

 
 
 

1、行内元素简介

行内元素 可以 在一行中 同时放置多个 , 常见的行内元素有 :

链接标签 : <a>
行内标签 : <span>
文字相关标签 : <em> , <i> , <strong> , <b> , <del>

2、行内元素特点

行内元素特点 :

单行多个 : 在 一行 中 , 可以 设置显示多个 行内元素 ;
宽高无效 : 行内元素 的 宽高 设置是 无效的 , 以 子内容 的大小来确定 ;
默认宽度 : 行内元素 的 宽度 是 其本身 的 宽度 ;
容器特性 : 行内元素 作为 容器 , 只能 存放 文本 或 行内元素 , 不能存放 块级元素 ;

在 链接 标签 <a> 中 , 不能包含 其它 链接 , 否则会产生冲突 ;

 

1、行内块元素简介

行内块元素 标签 是 特殊的标签 , 可以在 一行内显示多个 , 但是同时也可以为其设置 宽高属性 和 对齐属性 ;

图片标签 : <img>
表单标签 : <input>
单元格标签 : <td> , 表格 table 中的 行 tr 标签 中的 单元格 <td> 标签 ;

2、行内块元素特点

行内块元素特点 :

显示样式 : 行内块元素 默认 都在一行中显示 , 每个元素之间会自动添加间隔 ;
宽高设置 : 行内块元素 的 默认宽高 是 元素本身的宽高 , 但是也可以设置宽高 ;
样式设置 : 行内块元素 可以 设置 宽度 , 高度 , 内边距 , 外边距 , 行高 等属性 ;

参考 【CSS】标签显示模式 ② ( 行内元素 | 行内块元素 )_css行内标签_韩曙亮的博客-CSDN博客

 

HTML嵌套规范注意点
1. 块级元素一般作为大容器,可以嵌套:文本、块级元素、行内元素、行内块元素等等……
Ø 但是:p标签中不要嵌套div、p、h等块级元素
2. a标签内部可以嵌套任意元素
Ø 但是:a标签不能嵌套a标签

 

 

 

 

盒子的概念
1. 页面中的每一个标签,都可看做是一个 “盒子”,通过盒子的视角更方便的进行布局
2. 浏览器在渲染(显示)网页时,会将网页中的元素看做是一个个的矩形区域,我们也形象的称之为 盒子
2. 盒子模型
Ø CSS 中规定每个盒子分别由:内容区域(content)、内边距区域(padding)、边框区域(border)、外边距区域(margin
)构成,这就是 盒子模型
3. 记忆:可以联想现实中的包装盒

 

盒子实际大小终极计算公式:
盒子宽度 = 左边框 + 左padding + 内容宽度 + 右padding + 右边框
盒子高度 = 上边框 + 上padding + 内容宽度 + 下padding + 下边框
 
需求:盒子尺寸300*300,背景粉色,边框10px实线黑色,上下左右20px的内边距,如何完成?
 
给盒子设置border或padding时,盒子会被撑大,如果不想盒子被撑大?
Ø 解决方法 ① :手动内减
操作:自己计算多余大小,手动在内容中减去
缺点:项目中计算量太大,很麻烦
Ø 解决方法 ② :自动内减
操作:给盒子设置属性 box-sizing : border-box ; 即可
优点:浏览器会自动计算多余大小,自动在内容中减去
 
 
外边距折叠现象 – ① 合并现象
场景:垂直布局 的 块级元素,上下的margin会合并
Ø 结果:最终两者距离为margin的最大值
Ø 解决方法:避免就好
只给其中一个盒子设置margin即可
 
 
外边距折叠现象 – ② 塌陷现象
场景:互相嵌套 的 块级元素,子元素的 margin-top 会作用在父元素上
Ø 结果:导致父元素一起往下移动
Ø 解决方法:
1. 给父元素设置border-top 或者 padding-top(分隔父子元素的margin-top)
2. 给父元素设置overflow:hidden
3. 转换成行内块元素
4. 设置浮动
 
 
行内元素的margin和padding无效情况
场景:给行内元素设置margin和padding时
Ø 结果:
1. 水平方向的margin和padding布局中有效!
2. 垂直方向的margin和padding布局中无效!

 

 

css 书写顺序

建议遵循以下顺序:

布局定位属性:display / position / float / clear / visibility / overflow(建议 display 第一个写,毕竟关系到模式)

自身属性:width / height / margin / padding / border / background

文本属性:color / font / text-decoration / text-align / vertical-align / white- space / break-word

其他属性(CSS3):content / cursor / border-radius / box-shadow / text-shadow / background:linear-gradient …

 

开发前准备工作

为了提高网页制作的效率,布局时通常有以下的整体思路: 必须确定页面的版心(可视区),我们测量可得知。

分析页面中的行模块,以及每个行模块中的列模块。

其实页面布局第一准则. 一行中的列模块经常浮动布局, 先确定每个列的大小,之后确定列的位置.

页面布局第二准则 制作 HTML 结构。

我们还是遵循,先有结构,后有样式的原则。结构永远最重要. 所以, 先理清楚布局结构,再写代码尤为重要. 这需要我们多写多积累.

 

 

1, input button 不对齐

 input button 都为行内块元素

情况是这样的

 解决

1.input和button对不齐的原因

对不齐是因为行内元素的基线是不同的,所以会导致高低不同。
解决办法:每一个元素都加上下面即可;

vertical-align:middle;

<!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>Document</title>
    <style>
      .search {
        height: 38px;       
      }
      .search input {
        width: 360px;   
        height: 38px;    
        vertical-align: middle;
      }
      .search button {
        width: 50px;
        height: 38px;
        vertical-align: middle;
        /* background: url(./studyImgs/btn.png) no-repeat center; */
      }
    </style>
  </head>
  <body>
    <div class="search"><input type="text" /><button></button></div>
  </body>
</html>

  

2也可以 用浮动解决 

添加  float: left;

<!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>Document</title>
    <style>
      .search {
        height: 38px;       
      }
      .search input {
        float: left;
        width: 360px;   
        height: 38px;    
      }
      .search button {
        float: left;
        width: 50px;
        height: 38px;
        background: url(./studyImgs/btn.png) no-repeat center;
      }
    </style>
  </head>
  <body>
    <div class="search"><input type="text" /><button></button></div>
  </body>
</html>

参考 input & button对不齐、有间隙、高度不一致等问题解决方法_button和input高度不同-CSDN博客

2 img 图片宽度超出 父级元素的宽度

情况 是这样的

 解决 给img 加  width: 100%;

CSS100%是一种很有用的CSS单位,它表示相对于父元素的百分比计算。例如,如果一个元素的宽度设置为100%,那么它的宽度将等于其父元素的宽度。

参考 css100% - 老白网络 (yzktw.com.cn)

3 如果 浮动的是子元素 父元素 没有给高度 那么父元素的高度为0

解决 需要清除浮动 设置到 父元素上

.clearfix:before,.clearfix:after {
    content:"";
    display:table; 
  }
  .clearfix:after {
    clear:both;
  }
  .clearfix {
     *zoom:1;
  }   
 

参考 css-浮动造成的高度塌陷原因以及解决方法 清除浮动 BFC_盒子塌陷 清除浮动_吞掉星星的鲸鱼的博客-CSDN博客

关于子元素设置margin-top 父级元素掉下来的bug的解决方法

解决方法:
如果必须设置margin的话,有以下方法解决父元素掉下来的bug

给父元素设置:padding-top: 0.1px;
给父元素设置:border: 1px solid transparent;
给父元素设置:overflow: hidden;
给父元素设置:display: inline-block;
给父元素设置:float: left;
给父元素设置:position: absolute;
上面的任意一种方法,都可以解决这个bug,现在就可以达到我们需要的效果了,可以根据自己的具体需求
————————————————
版权声明:本文为CSDN博主「Boy~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/apple_51417798/article/details/124751754

 

 

 

精灵图的使用 

 .box1 {
            width: 60px;
            height: 60px;   
            margin: 100px auto;
            background: url(images/sprites.png) no-repeat   -182px 0;         
        }

用户界面样式-表单轮廓和防止拖拽文本域

  input, textarea {
            /* 取消表单轮廓 */
            outline: none;
        }
        textarea {
            /* 防止拖拽文本域 */
            resize: none;
        }

用户界面样式-鼠标样式

<ul>
        <li style="cursor: default;">我是默认的小白鼠标样式</li>
        <li style="cursor: pointer;">我是鼠标小手样式</li>
        <li style="cursor: move;">我是鼠标移动样式</li>
        <li style="cursor: text;">我是鼠标文本样式</li>
        <li style="cursor: not-allowed;">我是鼠标禁止样式</li>
    </ul>

利用vertical-align实现图片文字垂直居中对齐  

vertical-align 是图片与文字 的基线对齐 为 bottom,middle,baseline

 img {
            /* vertical-align: bottom; */
            /* 让图片和文字垂直居中 */
            vertical-align: middle;
            /* vertical-align: top; */
        }
        textarea {
            vertical-align: middle;
        }

图片底侧空白缝隙解决方案

原因就是 没与文字基线对齐

<style>
        div {
            border: 2px solid red;
        }
        img {
             vertical-align: bottom;
            display: block;
        }
    </style>

单行文本溢出显示省略号

 <style>
        div {
            width: 150px;
            height: 80px;
            background-color: pink;
            margin: 100px auto;
            /* 这个单词的意思是如果文字显示不开自动换行 */
            /* white-space: normal; */
            /* 1.这个单词的意思是如果文字显示不开也必须强制一行内显示 */
            white-space: nowrap;
            /* 2.溢出的部分隐藏起来 */
            overflow: hidden;
            /* 3. 文字溢出的时候用省略号来显示 */
            text-overflow: ellipsis;
        }
    </style>

 

多行文本溢出显示省略号  

<style>
        div {
            width: 150px;
            height: 65px;
            background-color: pink;
            margin: 100px auto;
            overflow: hidden;
            text-overflow: ellipsis;
            /* 弹性伸缩盒子模型显示 */
            display: -webkit-box;
            /* 限制在一个块元素显示的文本的行数 */
            -webkit-line-clamp: 3;
            /* 设置或检索伸缩盒对象的子元素的排列方式 */
            -webkit-box-orient: vertical;
        }
    </style>

  

margin负值的巧妙运用

实例参考 如果两个盒子边框合并会出现边框合并乘2的结果 用负值覆盖

<style>
        ul li {
            position: relative;
            float: left;
            list-style: none;
            width: 150px;
            height: 200px;
            border: 1px solid red;
            margin-left: -1px;
        }

        /* ul li:hover {
           1. 如果盒子没有定位,则鼠标经过添加相对定位即可
        position: relative;
        border: 1px solid blue;

       } */
        ul li:hover {
            /* 2.如果li都有定位,则利用 z-index提高层级 */
            z-index: 1;
            border: 1px solid blue;
        }
    </style>

  

文字围绕浮动元素的妙用

用float 图片即可浮动就是为了文字环绕而生

<style>
        * {
            margin: 0;
            padding: 0;
        }
        .box {
            width: 300px;
            height: 70px;
            background-color: pink;
            margin: 0 auto;
            padding: 5px;
        }
        .pic {
            float: left;
            width: 120px;
            height: 60px;
            margin-right: 5px;
        }
        .pic img {
            width: 100%;
        }
    </style>

  

行内块的巧妙运用 

实例 做分页 因为行内块元素天生具有间隙 所以适合做分页处理

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>行内块的巧妙运用</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .box {
            text-align: center;
        }
        .box a {
            display: inline-block;
            width: 36px;
            height: 36px;
            background-color: #f7f7f7;
            border: 1px solid #ccc;
            text-align: center;
            line-height: 36px;
            text-decoration: none;
            color: #333;
            font-size: 14px;
        }
       .box .prev,
        .box .next {
            width: 85px;
        }
        .box .current,
        .box .elp {
            background-color: #fff;
            border: none;
        }
        .box input {
            height: 36px;
            width: 45px;
            border: 1px solid #ccc;
            outline: none;
        }
        .box button {
           width: 60px;
           height: 36px;
           background-color: #f7f7f7;
            border: 1px solid #ccc;
            
        }
    </style>
</head>
<body>
    <div class="box">
        <a href="#" class="prev"><<上一页</a>
        <a href="#" class="current">2</a>
        <a href="#">3</a>
        <a href="#">4</a>
        <a href="#">5</a>
        <a href="#">6</a>
        <a href="#" class="elp">...</a>
        <a href="#" class="next">>>下一页</a>
        到第 
        <input type="text">
        页
        <button>确定</button>
    </div>
</body>
</html>

  

CSS三角强化的巧妙运用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>CSS三角强化的巧妙运用</title>
    <style>
         .box1 {
            width: 0;
            height: 0;
            /* 把上边框宽度调大 */
            /* border-top: 100px solid transparent;
            border-right: 50px solid skyblue; */
            /* 左边和下边的边框宽度设置为0 */
            /* border-bottom: 0 solid blue;
            border-left: 0 solid green; */
           /* 1.只保留右边的边框有颜色 */
           border-color: transparent red transparent transparent;
            /* 2. 样式都是solid */
            border-style: solid;
            /* 3. 上边框宽度要大, 右边框 宽度稍小, 其余的边框该为 0 */
            border-width: 100px 50px 0 0 ;

        }
        .price {
            width: 160px;
            height: 24px;
            line-height: 24px;
            border: 1px solid red;
            margin: 0 auto;
        }
        .miaosha {
            position: relative;
            float: left;
            width: 90px;
            height: 100%;
            background-color:red;
            text-align: center;
            color: #fff;
            font-weight: 700;
            margin-right: 8px;

        }
        .miaosha i {
            position: absolute;
            right: 0;
            top: 0;
            width: 0;
            height: 0;
            border-color: transparent #fff transparent transparent;
            border-style: solid;
            border-width: 24px 10px 0 0;
        }
        .origin {
            font-size: 12px;
            color: gray;
            text-decoration: line-through;
        }
    </style>
</head>
<body>
        <div class="box1"></div>
        <div class="price">
            <span class="miaosha">
                ¥1650
                <i></i>
            </span>
            <span class="origin">¥5650</span>
        </div>
</body>
</html>

  

初始化 css 统一样式

/* 把我们所有标签的内外边距清零 */
* {
    margin: 0;
    padding: 0
}
/* em 和 i 斜体的文字不倾斜 */
em,
i {
    font-style: normal
}
/* 去掉li 的小圆点 */
li {
    list-style: none
}

img {
    /* border 0 照顾低版本浏览器 如果 图片外面包含了链接会有边框的问题 */
    border: 0;
    /* 取消图片底侧有空白缝隙的问题 */
    vertical-align: middle
}

button {
    /* 当我们鼠标经过button 按钮的时候,鼠标变成小手 */
    cursor: pointer
}

a {
    color: #666;
    text-decoration: none
}

a:hover {
    color: #c81623
}

button,
input {
    /* "\5B8B\4F53" 就是宋体的意思 这样浏览器兼容性比较好 */
    font-family: Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif
}

body {
    /* CSS3 抗锯齿形 让文字显示的更加清晰 */
    -webkit-font-smoothing: antialiased;
    background-color: #fff;
    font: 12px/1.5 Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif;
    color: #666
}

.hide,
.none {
    display: none
}
/* 清除浮动 */
.clearfix:after {
    visibility: hidden;
    clear: both;
    display: block;
    content: ".";
    height: 0
}

.clearfix {
    *zoom: 1
}

  

CSS3新增属性选择器

<style>
        /* 必须是input 但是同时具有 value这个属性 选择这个元素  [] */
        /* input[value] {
            color:pink;
        } */
        /* 只选择 type =text 文本框的input 选取出来 */
        input[type=text] {
            color: pink;
        }
        /* 选择首先是div 然后 具有class属性 并且属性值 必须是 icon开头的这些元素 */
        div[class^=icon] {
            color: red;
        }
        section[class$=data] {
            color: blue;
        }
        div.icon1 {
            color: skyblue;
        }
        /* 类选择器和属性选择器 伪类选择器 权重都是 10 */
    </style>

  

CSS3新增结构伪类选择器

<style>
        /* 1. 选择ul里面的第一个孩子 小li */
        ul li:first-child {
            background-color: pink;
        }
        /* 2. 选择ul里面的最后一个孩子 小li */
        ul li:last-child {
            background-color: pink;
        }
         /* 3. 选择ul里面的第2个孩子 小li */
         ul li:nth-child(2) {
            background-color: skyblue;
        }
        ul li:nth-child(6) {
            background-color: skyblue;
        }
    </style>

 

CSS3新增结构伪类选择器-nth-child 

 

<style>
        /* 1.把所有的偶数 even的孩子选出来 */
        ul li:nth-child(even) {
            background-color: #ccc;
        }
        /* 2.把所有的奇数 odd的孩子选出来 */
        ul li:nth-child(odd) {
            background-color: gray;
        }
        /* 3.nth-child(n) 从0开始 每次加1 往后面计算  这里面必须是n 不能是其他的字母 选择了所有的孩子*/
        /* ol li:nth-child(n) {
            background-color: pink;
        } */
        /* 4.nth-child(2n)母选择了所有的偶数孩子 等价于 even*/
        /* ol li:nth-child(2n) {
            background-color: pink;
        }
        ol li:nth-child(2n+1) {
            background-color: skyblue;
        } */
        /* ol li:nth-child(n+3) {
            background-color: pink;
        } */
        ol li:nth-child(-n+3) {
            background-color: pink;
        }
    </style>

 

  

CSS3新增选择器nth-type-of

<style>
        ul li:first-of-type {
            background-color: pink;
        }
        ul li:last-of-type {
            background-color: pink;
        }
        ul li:nth-of-type(even) {
            background-color: skyblue;
        }
        /* nth-child 会把所有的盒子都排列序号 */
        /* 执行的时候首先看  :nth-child(1) 之后回去看 前面 div */

        section div:nth-child(1) {
            background-color: red;
        }
         /* nth-of-type 会把指定元素的盒子排列序号 */
        /* 执行的时候首先看  div指定的元素  之后回去看 :nth-of-type(1) 第几个孩子 */
        section div:nth-of-type(1) {
            background-color: blue;
        }
    </style>

  

伪元素选择器before和after

 <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
        }
        /* div::before 权重是2 */
        div::before {
            /* 这个content是必须要写的 */
            /* display: inline-block; */
            content: '我';
            /* width: 30px;
            height: 40px;
            background-color: purple; */
        }
        div::after {
            content: '小猪佩奇';
        }
    </style>

  

伪元素选择器使用场景2-仿土豆网显示隐藏遮罩案例

<style>
        .tudou {
            position: relative;
            width: 444px;
            height: 320px;
            background-color: pink;
            margin: 30px auto;
        }
        .tudou img {
            width: 100%;
            height: 100%;
        }
        .tudou::before {
            content: '';
            /* 隐藏遮罩层 */
            display: none;
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, .4) url(images/arr.png) no-repeat center;
        }
        /* 当我们鼠标经过了 土豆这个盒子,就让里面before遮罩层显示出来 */
        .tudou:hover::before {
            /* 而是显示元素 */
            display: block;
        }
    </style>

  

CSS3盒子模型

就是 padding 增加 指定width 是不变的 自己计算

box-sizing: border-box;

 <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            border: 20px solid red;
            padding: 15px;
            box-sizing: content-box;
        }
        p {
            width: 200px;
            height: 200px;
            background-color: pink;
            border: 20px solid red;
            padding: 15px;
            /* css3 盒子模型  盒子最终的大小就是 width  200 的大小 */
            box-sizing: border-box;
        }
    </style>

  

图片模糊处理filter

<style>
        img {
            /* blur是一个函数 小括号里面数值越大,图片越模糊 注意数值要加px单位 */
            filter: blur(15px);
        }
        img:hover {
            filter: blur(0);
        }
    </style>

  

CSS3属性calc函数

 <style>
        .father {
            width: 300px;
            height: 200px;
            background-color: pink;
        }
        .son {
            /* width: 150px; */
            /* width: calc(150px + 30px); */
            width: calc(100% - 30px);
            height: 30px;
            background-color: skyblue;
        }
    </style>

  

CSS3 过渡效果

transition 一般结合 hover 使用
谁过渡 给谁加 hover 和transition
<style>
        div {
            width: 200px;
            height: 100px;
            background-color: pink;
            /* transition: 变化的属性 花费时间 运动曲线 何时开始; */
            /* transition: width .5s ease 0s, height .5s ease 1s; */
            /* 如果想要写多个属性,利用逗号进行分割 */
            /* transition: width .5s, height .5s; */
            /* 如果想要多个属性都变化,属性写all就可以了 */
            /* transition: height .5s ease 1s; */
            /* 谁做过渡,给谁加 */
            transition: all 0.5s;
        }
        div:hover {
            width: 400px;
            height: 200px;
            background-color: skyblue;
        }
    </style>

  

outline 去掉内容边框 

 

    <style>
      input{
        outline: none;
      }
    </style>

 

 

 

 

CSS样式命名 说明
命名规则说明:
所有的命名最好都小写,不可以用纯数字命名,不可以用数字或“_”开头命名
属性的值一定要用双引号(“”)括起来,且一定要有值如class=“box”,id=“box”
每个标签都要有开始和结束,且要有正确的层次,排版有规律工整
空元素要有结束的tag或于开始的tag后加上"/"
表现与结构完全分离,代码中不涉及任何的表现元素,如style、font、bgColor、border等
<h1> 到 <h6>的定义,应遵循从大到小的原则,体现文档的结构,并有利于搜索引擎的查询。
给每一个表格和表单加上一个唯一的、结构标记id
给图片加上alt属性
尽量使用英文命名原则
尽量不缩写,除非一看就明白的单词
1.网页公共命名
#wrapper 页面外围控制整体布局宽度

#container或#content 容器,用于最外层

#layout 布局

#head, #header 页头部分

#foot, #footer 页脚部分

#nav 主导航

#subnav 二级导航

#menu 菜单

#submenu 子菜单

#sideBar 侧栏

#sidebar_a, #sidebar_b 左边栏或右边栏

#main 页面主体

#tag 标签

#msg #message 提示信息

#tips 小技巧

#vote 投票

#friendlink 友情连接

#title 标题

#summary 摘要

#loginbar 登录条

#searchInput 搜索输入框

#hot 热门热点

#search 搜索

#search_output 搜索输出和搜索结果相似

#searchBar 搜索条

#search_results 搜索结果

#copyright 版权信息

#branding 商标

#logo 网站LOGO标志

#siteinfo 网站信息

#siteinfoLegal 法律声明

#siteinfoCredits 信誉

#joinus 加入我们

#partner 合作伙伴

#service 服务

#regsiter 注册

#arrow 箭头

#guild 指南

#sitemap 网站地图

#list 列表

#homepage 首页

#subpage 二级页面子页面

#tool, #toolbar 工具条

#drop 下拉

#dorpmenu 下拉菜单

#status 状态

#scroll 滚动

.tab 标签页

.left .right .center 居左、中、右

.news 新闻

.download 下载

.banner 广告条(顶部广告条)

2.电商网站相关
.products 产品

.products_prices 产品价格

.products_description 产品描述

.products_review 产品评论

.editor_review 编辑评论

.news_release 最新产品

.publisher 生产商

.screenshot 缩略图

.faqs 常见问题

.keyword 关键词

.blog 博客

.forum 论坛

3.CSS文件命名 说明
master.css,style.css 主要的

module.css 模块

base.css 基本共用

layout.css 布局,版面

themes.css 主题

columns.css 专栏

font.css 文字、字体

forms.css 表单

mend.css 补丁

print.css 打印

4.CSS命名其它说明:
DIV+CSS命名小结: 无论是使用“.”(小写句号)选择符号开头命名,还是使用“#”(井号)选择符号开头命名都无所谓,但我们最好遵循,主要的、重要的、特殊的、最外层的盒子用“#”(井号)选择符号开头命名,其它都用“.”(小写句号)选择符号开头命名,同时考虑命名的CSS选择器在HTML中重复使用调用。

通常我们最常用主要命名有: wrap(外套、最外层)、header(页眉、头部)、nav(导航条)、menu(菜单)、title(栏目标题、一般配合h1\h2\h3\h4标签使用)
、content (内容区)、footer(页脚、底部)、logo(标志、可以配合h1标签使用)、banner(广告条,一般在顶部)、copyRight(版权)。其它可根据自己需要选择性使用。

DIV,CSS建议: 主要的、重要的、最外层的盒子用“#”(井号)选择符号开头命名,其它都用“.”(小写句号)选择符号开头命名。
————————————————
版权声明:本文为CSDN博主「灰猫警长」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39155611/article/details/105651369

史上最全CSS命名规范-CSDN博客

 

 

posted on 2023-10-25 19:16  是水饺不是水饺  阅读(42)  评论(0)    收藏  举报

导航