首页 前端知识 CSS整理

CSS整理

2024-08-18 00:08:52 前端知识 前端哥 738 685 我要收藏

1.css介绍

1)CSS表示层叠样式表(Cascading Style Sheet,简称:CSS,又称为又称串样式列表、级联样式表、串接样式表、阶层式样式表)是为网页添加样式的代码。CSS并不是一门编程语言,是样式语言。作用就是进行网页布局和美化网页。

2)写CSS,有三种写法,内部式:CSS 写在style标签中, 提示:style标签虽然可以写在页面任意位置,但是通常约定写在 head 标签中。外部式:CSS 写在一个单独的.css文件中, 提示:需要通过link标签在网页中引入。行内式:CSS 写在标签的style属性中, 之后会配合js使用。

2.CSS选择器

1.基础选择器

1)通用选择器

1.结构:* { css属性名:属性值; }

2.所有的元素都会被选中

2)元素选择器

1.结构:标签名 { css属性名:属性值; }

2.选择的是一类标签,而不是单独某一个

3)类选择器

1.结构:.类名 { css属性名:属性值; }

2.通过类名,找到页面中所有带有这个类名的标签,设置样式

3.一个标签可以同时有多个类名,类名之间以空格隔开

4.类名可以重复,一个类选择器可以同时选中多个标签

4)id选择器

1.结构:#id属性值 { css属性名:属性值; }

2.通过id属性值,找到页面中带有这个id属性值的标签,设置样式

3.一个标签上只能有一个id属性值,id在一个页面中是唯一的,不可重复的,一个id选择器只能选中一个标签

2.高级选择器

5)属性选择器

1.结构:[属性] { css属性名:属性值; }

6)后代选择器

选中所有的后代  空格    无论嵌套多深,只要是后代,都会选中

子代选择器   >   只会选中直接子代  

7)兄弟选择器

+  选中某个元素后面紧挨着的那个兄弟  一定是后面的 不包含自己

~  选中某个元素后面的所有的兄弟,一定是后面的  不包含自己

8)交集选择器

同时符合两个选择器条件(两个选择器紧密连接)

9)群组(并集)选择器

符合一个选择器条件即可(两个选择器以,号分割)

10)动态伪类

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .foo1,
        .foo2 {
            width: 120px;
            height: 120px;
            background-color: #ccc;
        }
        div:hover a {
            color: green;
        }

        .foo2:hover {
            color: blue;
        }
    </style>
</head>
<body>
    <!-- 鼠标悬停在class="foo1"的div元素上,a元素变绿 -->
    <div class="foo1">
        foo1
        <a href="#">百度一下</a>
    </div>
    <hr>
    <!-- 鼠标悬停在class="foo2"的div元素上,内部文字变蓝 -->
    <div class="foo2">
        foo2
        <div>百度一下</div>
    </div>
</body>
</html>

3.选择器优先级

1)行内样式>ID选择器>类选择器>元素选择器

2)内外部样式加载顺序:就近原则

3)!important

3.字体相关的样式

1.font-size

设置文字的大小

1)font-size: 16px;      设置字体为16px(谷歌浏览器默认文字大小是16px)

2)一个网页中常用的字体大小是12px和14px

3)有继承性

2.font-family

设置文字的字体

1)font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

设置网页的字体,按从左到右顺序,以逗号隔开。如果字体名称包含空格,则应使用引号括起

2)有继承性

3.font-weight

设置文字的粗细

1)font-weight: normal;    是默认值(normal:等于400),正常粗细

2)font-weight: bold;        常用(bold:等于700)

3)取值是100-900  100变细 900加粗

4)strong、b、h1~h6等标签的font-weight默认就是bold

5)有继承性

4.font-style

设置文字的常规、斜体显示

1)font-style: normal;       是默认值,正常

2)font-style: italic;          字体倾斜

3)有继承性

5. font-variant

设置小写字母的显示形式

1)font-variant: normal;     是默认值,正常

2)font-variant: small-caps;   将小写字母替换为缩小过的大写字母

6.line-height

设置文本的行高

1)line-height: 20px;  或  line-height: 1; 

2)网页精准布局时,会设置 line-height : 1 可以取消上下间距

3)单行时,line-height的高度等于盒子的高度,文字在盒子内垂直居中

7.font

1)作为 font-style, font-variant, font-weight, font-size, line-height 和 font-family 属性的简写

2)font-style、font-variant、font-weight可以随意调换顺序,也可以省略

3)line-height可以省略,如果不省略,必须跟在font-size后面

4)font-size、font-family不可以调换顺序,不可以省略

4.文本相关的样式

1.text-decoration

设置文字的装饰线

1)text-decoration: none;   无任何装饰线,可以去除a元素默认的下划线

2)text-decoration:underline;   下划线

3)text-decoration:overline;   上划线

4)text-decoration:line-through;   删除线

2.text-transform

设置文字的大小写转换

1)text-transform: lowercase;   每个单词的所有字符变为小写

2)text-transform: uppercase;   每个单词的所有字符变为大写

3)text-transform: capitalize;   每个单词的首字符变为大写

4)text-transform: none;

3.text-indent

设置第一行内容的缩进

1)text-indent: 2em;   缩进2个文字(1em = 当前标签的font-size的大小)

2)text-indent: 16px;

4.text-align

设置文本的对齐方式

1)text-align: left;   左对齐

2)text-align: center;   右对齐

3)text-align: right;   居中

4)有继承性

5)可以作用:文本;span标签、a标签(行内元素);input标签、img标签(行内块元素)

5.元素的类型

1)块级元素

独占一行,宽度默认是父元素的宽度,高度默认由内容撑开,可以设置宽高。

标签:div、p、h系列、ul、li、dl、dt、dd、form、header、nav、footer……

2)行内元素

一行可以显示多个 ,并排显示,宽度和高度默认由内容撑开,不可以设置宽高。

标签:a、span 、b、u、i、s、strong、ins、em、del……

3)行内块元素

一行可以显示多个 ,并排显示(除并排显示之外,其它特性和块级元素一样)

特殊情况:img标签有行内块元素特点,但是Chrome调试工具中显示结果是inline

标签:input、textarea、button、select……

6.盒子模型

1.内容区域

对于块级元素来说,如果没有设置宽度,宽度默认是父元素的100%

对于行内元素来说,如果没有设置宽度,宽度和高度是由内容撑起来的

对于行内元素来说,无法设置宽度和高度

2.padding内边距

写法1: 写一个值 上下左右 
            /* padding: 20px; */

写法2:两个值----上下 左右 
            /* padding: 10px 20px; */

写法3:三个值----上 左右 下 
            /* padding: 10px 20px 5px; */

写法4:四个值----上 右 下 左 顺时针 
            /* padding: 10px 20px 30px 40px; */

写法5:单独给一侧设置内边距 
            padding-top: 10px;
            padding-bottom: 40px;
            padding-left: 50px;
            padding-right: 5px;

3.border边框

边框宽度 
            /* border-width: 10px; */
边框颜色 
            /* border-color: red; */
边框的样式 
            /* solid 实线  dashed  虚线  dotted 点线  */
            /* border-style: solid; */
混合写法 宽度 样式 颜色 
            border: 10px solid red;
给单独某一侧设置边框 
            /* 上下左右 top/bottom/left/right */
            border-left: 5px solid yellow;

边框圆角    如果盒子是正方形,50%就是圆形 
            border-radius: 50%;
            /* 值越大,圆角越大 */
            border-radius: 10px;

4.margin外边距

写法1:一个值 上下左右 
            margin: 20px;
写法2:两个值 上下  左右 
            margin: 30px 20px;
写法3:三个值 上 左右  下 
            margin: 30px 50px 20px;
写法4:四个值 上 右 下 左 (顺时针方向
            margin: 100px 50px 120px 100px;
单独一侧设置
            margin-left(left、right、top、bottom)
margin-left: 30px;

让块级元素水平居中 
     margin: 0 auto;

margin坍塌问题: 兄弟元素间margin最终的值是取大优先
父子元素间       解决1:给父级添加border 
                 /* border: 1px solid red; */

                常用:解决方案2:overflow: hidden;触发了一个BFC 
                overflow: hidden;
  
                左浮动 
                解决方案3:给父元素或子元素设置浮动,触发一个BFC 
                /* float: left; */

5.盒子阴影

阴影 x y z 阴影大小 颜色 
           x(左负右正)               y(上负下正)             z(越大越模糊) 
box-shadow:h-shadow(水平阴影的位置)  v-shadow(垂直阴影的位置) 模糊距离 阴影的大小 颜色 

box-shadow: -10px 10px 15px 10px red;

6.怪异盒模型

标准盒模型 默认
box-sizing: content-box;

怪异盒模型
box-sizing: border-box;

唯一区别:宽和高 

标准盒模型/传统盒子模型 box-sizing: content-box;
在页面所占据的大小:
内容区域设置的宽度+左右padding+左右border+左右margin

怪异盒模型/新的盒子模型 box-sizing: border-box;
在页面所占据的大小:
内容区域设置的宽度(content+左右padding+border)+margin

7.display属性

块级元素    display:block
行内元素    display:inline
行内块元素  display:inline-block
隐藏        display: none;
显示        display: block;

7.定位方式

1.相对定位position: relative;

1)参考点:元素原本的位置

2)需要通过 left  right top  bottom 设置偏移量  要么使用一个,要么使用二个

3)相对定位的元素并没有脱标,原本的位置,还是被占用着

4)应用场景:A)局部位置调整  B)作为绝对定位的参考点(常用)

2.绝对定位position:absolute;

1)完全脱离标准文档流,不占据自身位置(完全脱标)

2)需要通过left right top bottom 设置偏移量  要么使用一个,要么使用二个

3)不设置参考点, 逐级往上找最终以body作为参考点

4)设置参考点, position:relative; position:fixed;  position:absolute;

5)大部分情况下,设置参考点是通过 position:relative;(父相子绝)

6)大部分情况下,会把参考点设置到父元素上

7)通过z-index可以改变层叠顺序 值越大,越靠前

绝对定位让元素水平居中
            position: absolute;
            top: 50%;
            left: 50%;
            /* 元素自身宽高的一半 */
            margin-left: -150px;
            margin-top: -150px;

3.固定定位position:fixed;

1)完全脱离标准文档流,叫脱标

2)需要通过 left  right top  bottom 设置偏移量   要么使用一个,要么使用二个

3)参考点是整个浏览器的视口

4)一个女盒子会直接变成男盒子,可以设置宽高

4.静态定位position:static;

 HTML 元素的默认值,即没有定位,遵循标准文档流。表示块保留在原本应该在的位置,不会重新定位。不会受到 top, bottom, left, right影响

5.粘性定位position:sticky;

8.flex布局

四个概念:

          容器:如果一个盒子设置了display: flex;那么这个盒子就叫容器(contain)

          项目:容器中的直接子元素,叫项目(item)

          主轴:项目默认就是在主轴上排列,默认主轴是水平从左向右的

          交叉轴:和主轴垂直的那个轴,叫交叉轴。

        作用:改变排列方式-沿着主轴/交叉轴排列

            /* 沿着主轴排列 默认值 */
            flex-direction: row;
            /* 沿交叉轴排列 */
            flex-direction: column;
            /* 沿交叉轴排列 倒序*/
            flex-direction: column-reverse;
            /* 沿着主轴排列 倒序 */
            flex-direction: row-reverse;
       项目的总宽度>父级容器的宽度且不换行,每一个项目会进行压缩
            /* 不换行(默认值) */
            flex-wrap: nowrap;

            /* 换行 */
            flex-wrap: wrap;

            /* 换行翻转 了解 */
            flex-wrap: wrap-reverse;


        混合写法
            /* 第一个值:排列方式 column  row  column-reverse row-reverse */
            /* 第二个值:换行 nowrap wrap */
            flex-flow: column wrap;
            flex-flow: row wrap;
flex布局
            display: flex;

            /* justify-content作用:决定项目在主轴的排列顺序 */

            /* 项目在主轴的起点开始排列 */
            justify-content: flex-start;

            /* 项目在主轴终点开始排列 */
            justify-content: flex-end;
            
            /* 项目在主轴中点开始排列 */
            justify-content:center;

            /* 富余空间在项目与项目之间 重要 */
            justify-content: space-between;

            /* 富余空间均匀环绕每个项目 中间是两侧的二倍*/
            justify-content: space-around;

            /* 富余空间均匀环绕每个项目 */
            justify-content: space-evenly;

            /* flex-wrap: wrap; */
align-items决定项目在交叉轴的排列顺序

            /* 项目在交叉轴的起点开始排列 默认 */
            align-items: flex-start;

            /* 项目在交叉轴的终点终点排列 */
            align-items: flex-end;

            /* 项目在交叉轴的中点开始排列 */
            align-items: center;

            /*了解 如果项目没有设置高度,项目会充满整个交叉轴 */
            align-items: stretch;

            /*了解 效果和stretch是一样的 */
            align-items: normal;

            /*了解 项目中文本基线对齐 */
            align-items: baseline;
决定主轴是多根还是一根,或者是决定项目是否换行
            flex-wrap: wrap;

            /* align-content决定多行项目在交叉轴上的对齐方式 */

            /* 多根主轴在交叉轴的起点开始排列 */
            align-content: flex-start;

            /* 多根主轴在交叉轴的终点开始排列 */
            align-content: flex-end;

            /* 多根主轴在交叉轴的中点开始排列 */
            align-content: center;

            /* 交叉轴上的富余空间们于两排项目之间 */
            align-content: space-between;

            /* 交叉轴上的富余空间环绕两排项目之间 */
            align-content: space-around;

            align-content: space-evenly;
项目属性:order
    决定了 flex items 的排布顺序
    可以设置任意整数(正整数、负整数、0),值越小就越排在前面
    默认值是0 
align-self
        单独设置某个项目在交叉轴上的对齐方式
        
        取值:
        flex-start  在顶部
        flex-end    在底部
        center 在交叉轴 
        参照父级的高度
flex-grow  左右定宽,中间自适应
<!-- 值越大,压缩的越厉害 -->
        <div class="item" style="flex-shrink: 1;">one</div>
        <div class="item" style="flex-shrink: 6;">two</div>
<!-- flex-basis: 200px; 指定一个项目在主轴上占据的大小 -->
        <!-- flex-basis和width作用一样,都是设置宽度,flex-basis优先级更高 -->
<!-- flex后面跟一个值,这个值代表flex-grow -->
<!-- flex 是 flex-grow || flex-shrink || flex-basis 的简写,属性值可以指定1个,2个或3个值 -->

9.浮动布局

1.目的:让块级盒子并排显示(同行左右布局的问题)。 

             实现浮动的方式:float:left(左浮动)/right(右浮动)

             浮动的元素并没有完全脱离标准文档流(半脱标)

2.浮动元素的特点:

    1)浮动元素脱标 (半脱离,有字围效果)

    2)包裹性 如果没有设置宽度,浮动的元素宽度只会包裹内容

    3)破坏性 如果子元素都浮动,都出国,父盒子如果没有设置高度,高度会变成0,就是所谓的           高度塌陷

3.清除浮动(清除对父级元素造成的影响)

     1)给父级元素添加overflow: hidden;

     2)加高法 给父级元素单独添加高度(用得不多,一个盒子的高度通常被内容撑起来)

     3)内墙法 在父元素内部的最后面添加一个div,给这个元素设置clear: both属性

     4)伪元素 说白了就是内墙法的改造  ::after

4.清除浮动(清除对兄弟元素造成的影响):clear:both;

   哪个元素受影响,就在那个元素设置clear: both;

转载请注明出处或者链接地址:https://www.qianduange.cn//article/15912.html
标签
评论
发布的文章

XML与JSON的使用

2024-08-23 21:08:27

npm i 常见问题

2024-08-23 20:08:23

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!