前端三剑客——CSS样式

   CSS样式:  进行美化页面即html标签中的style

  大纲:

      1.CSS样式应用方式

      2.CSS样式的选择器

      3.CSS样式的大致内容

 

 

 

 

 

 

    CSS样式应用方式:即CSS样式写在哪

            1.应用在html标签上

<img src="..." style="color:red" />
<div style="color:red">你好</div>

            2应用.在head里面

<head>
    <meta charset="UTF-8">
    <title>大米</title>
    <style>
        body{
            margin:0;
        }
        .header{
            background: #333;
        }
        .container{
            width: 1226px;
            margin: auto;
        }
        .menu{
            float: left;
        }
        .account{
            float: right;
        }
        .header a{
            font-size: 12px;
            color: #b0b0b0;
            margin-left: 10px;
            height: 40px;
            line-height: 40px;
        }

    </style>
</head>

            3.应用在文件里:   使用情况:布局多个页面时避免重复写style

在head里面导入文件
<link rel="stylesheet" href="放css样式的文件.css(基于falsk框架写的网站css文件写在static目录下)">

 

 

    CSS样式选择器: 即如何去调用写好的CSS样式

            1.类选择器  : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>111</title>
    <style>
        .c1{
            color: red;
        }
    </style>
</head>
<body>
    <div class="c1">
        你好
    </div>
</body>
</html>

             2.后代选择  :  

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>111</title>
    <style>
    .c1>li{
        color: pink !important; /* 把 !important 放在属性值和分号之间 */
    }
    .c1 li{
        color: red;
    }

    </style>
</head>
<body>
    <div class="c1">
        <li>你好</li>
        <div>
            <li>你好</li>
        </div>
    </div>

</body>
</html>

            3.标签选择器:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>111</title>
    <style>
    div{
        color: red;
    }

    </style>
</head>
<body>
    <div>
        你好
    </div>
    <h1>你好</h1>

</body>
</html>

            4.id选择器:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>111</title>
    <style>
    #c1{
        color: red;
    }

    </style>
</head>
<body>
    <div id="c1">
        你好
    </div>

</body>
</html>

            5.属性选择器:

image

             6.补充:多个选择器和覆盖

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>111</title>
    <style>
    .c1{
        color: red !important;
    }
    .c2{
        color: pink;
    }
    </style>
</head>
<body>
    <div class="c1 c2">你好</div>
</body>
</html>

 

    CSS样式大致内容

            1.高度和宽度设置

.c1{
    color: red;
    height: 40px;
    width: 50%;
}

             注意事项:1.宽度支持百分比  2.行内标签设置高度和宽度支撑不起来,得用display:block改变  3.虽然块级标签使用宽度限制其在此行所占位置,但此行剩余部分依然不可以被使用,得用display: inline-block改变  

 

 

            2.块级,行内标签转换设置: 用display进行改变:  块级->行内 和 行内->块级 或 既具有行内又有块级的特性

#块级变行内 display:inline
.c1{
    color: red;
    height: 40px;
    width: 50%;
    display: inline;
}
<div class="c1">你好</div>      #此时块级标签变成行内标签所以c1里面的宽度对其无效

 image

#行内变块级
.c1{
    color: red;
    height: 40px;
    width: 50%;
    display: block;
}
<span class="c1">你好</span>     #变成块级标签后可以进行设置宽度   此行后面剩余部分则不可被其他标签占用

image 

 

#即具有块级和行内的特性
.c1{
    color: red;
    height: 40px;
    width: 50%;
    display: inline-block;
}
<div class="c1">你好</div>        或        <span class="c1">你好</span>
你好

image 

 

 

             3.字体设置:  颜色  大小  加粗  字体格式

.c1{
    color: red;                #字体颜色
    font-size: 20px;           #字体大小
    font-weight: 600;          #字体粗细
    font-family: Arial;        #字体格式
}
<span class="c1">你好</span>

 

 

             4.文字对齐方式:  水平居中(text-align : center)      垂直居中(line-height : 设置的(height))

.c1{
    color: red;
    height: 80px;
    width: 150px;
    text-align: center;             #水平对齐
    line-height: 80px;              #垂直对齐
    border: 1px solid red;          #加边框(可视化)
    display: inline-block;
}
<span class="c1">你好</span>

image

  

            5.内边距: padding    为自己原有位置扩展领域(在块级区域中保持自己高宽(150,80)不变,向外扩张padding的值,则扩张后的区域也是属于这个块级区域的)

.c1{
    height: 80px;
    width: 150px;
    border: 1px solid red;

    padding-top: 10px;
    padding-left: 10px;
    padding-right: 10px;
    padding-bottom: 10px;                    #简写:padding:10px 20px 30px 20px 上 右 下 左  图3
}
<div class="c1">你好呀!</div>
你好

image                image                                                                                          image         image

 

 

            6.外边距:  margin

.c1{
    height: 80px;
    width: 150px;
    border: 1px solid red;
    display: inline-block;
}
.c2{
    height: 80px;
    width: 150px;
    border: 1px solid red;
    margin-left: 10px;
    display: inline-block;
}
<div class="c1">你好呀!</div>
<div class="c2">你好</div>

image       image

 

      遇到的问题:第一个div中CSS样式有添加内边距时 第二个div标签不在顶端,如图:      解决办法:浮动并排

image

 

 

            7.浮动并排    float

  困惑点:既然可以把块级标签通过display:inline-block使其不在霸道,让此行剩余部分让别人进行占用 ,为什么要有浮动并排

  困惑点可视化:6中遇见的问题

原因
简单说:两个元素并排时,默认是按“文字基线”对齐的(就像写字母时,字母底部对齐那条线)。第一个元素加了内边距(padding),把自己撑高了,它的“基线”位置也跟着变低了。
第二个元素没加内边距,就跟着这个变低的基线对齐,所以看起来它的顶部没对齐,好像往下挪了一点。
解决办法:
1.给第二个元素加一句 `vertical-align: top;`,强制让它们顶部对齐,就顶格了。
2.把两个元素都改成块级元素,再用浮动并排
  先去掉 display: inline-block,然后给两个元素都加 float: left。

 

6中问题解决
body{
    margin: 0;
}

.c1{
    height: 80px;
    width: 150px;
    border: 1px solid red;
    padding: 10px;
    float: left;
}
.c2{
    height: 80px;
    width: 150px;
    border: 1px solid red;
    margin-left: 10px;
    float: left;
}

<div class="c1">你好呀!</div>
<div class="c2">你好</div>

image 

 

         浮动并排:

查看代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>111</title>
    <style>
     body{
        margin: 0;
     }

    .a1{
        background-color: black;
    }
    .a1 .c1{
        height: 40px;
        border: 1px solid red;
        padding: 10px;
        float: left;
    }
    .a1 .c2{
        height: 40px;
        border: 1px solid red;
        margin-left: 10px;
        float: left;
    }
    </style>
</head>
<body>
    <div class="a1">                              #父级
        <div class="c1">你好呀!</div>
        <div class="c2">你好</div>
        <div style="clear:both"></div>            #给父元素加 “清除浮动”,避免父元素高度坍塌(避免父级元素被覆盖)
    </div>
</body>
</html>

image

        注意点:父级如果没有高度或者宽度,孩子若有高度或者宽度则会把父级支撑起来

             如果父级中存在孩子浮动则要加避免坍塌的语句

 

 

            8.body:body标签默认有边距造成页面四周有间隙

解决办法:
body{
    margin: 0;    
}

image       image

 

            9.内容居中:  文本居中  区域居中

      1.文本居中:  text-align:center  line-height:height  

body{
    margin: 0;
}

.a1{
    background-color: black;
}
.a1 .c1{
    color: white;
    height: 60px;
    border: 1px solid red;
    text-align: center;
    line-height: 60px;
    float: left;
}
.a1 .c2{
    height: 40px;
    border: 1px solid red;
    margin-left: 10px;
    float: left;
}

<div class="a1">
    <div class="c1">你好呀!</div>
    <div class="c2">你好</div>
    <div style="clear:both"></div>
</div>

image

       2.区域居中:  自己得有宽度+margin-left:auto    margin-right:auto

.a1{
    height: 100000px;
    width: 100px;
    background-color: pink;
    margin: 0 auto;    #上0 右平均 下0 左平均
    }
<div class="a1"></div>

一般是container

image            

 

 

             10.背景色和边框:

背景色:background-color: pink;
边框:border: 1px solid red;     transparent透明色
      border-radius:5px;    圆角

 

 

             11. hover伪装:    不仅可以改变自己还可以改变自己内部的标签的元素

      改变自己:

.a1 .c1 a{
    height: 60px;
    text-align: center;
    line-height: 60px;
    float: left;
    text-decoration:none;
}
.a1 .c1 a:hover{
    color: red;    
}

<div class="a1">
    <div class="c1">
        <a href="https://www.luffycity.com/study/vip-card/5AG2JbrKlMwQ578EHw" target="_blank">点击跳转</a>
    </div>
</div>

鼠标放上前:image       鼠标放上后:   image

      

      改变自己内部标签的元素

.a1{
    height: 100000px;
    width: 65%;

    margin: 0 auto;
    border: 1px solid red;
}
.a1 .c2{
    width: 100px;
    height: 60px;
    text-align: center;
    line-height: 60px;
    margin-left: 10px;
    float: left;
    color: -webkit-link;
}

.a1 .c2 .b1{
    display:none;
}

.a1 .c2:hover .b1{
    display:block;
}

<div class="a1">
    <div class="c2">
        <div>作者微信</div>
        <div class="b1">
            <img src="./images/微信图片_20251024215623_91_2.jpg" alt="作者微信">
        </div>
    </div>
</div>




CSS 中鼠标悬停的伪类是 :hover(冒号开头),必须紧跟在要触发 hover 的元素选择器后面(比如 .c2:hover),表示 “当鼠标悬停在 .c2 上时”,再去控制它内部的 .b1 元素。
修改后,当鼠标放到 “作者微信” 所在的 .c2 区域时,图片就会显示出来了。

鼠标放上前        image         鼠标放上后  image      

 

 

 

            12.after伪装:  .clearfix:after

.clearfix:after{
    content: "";
    display: block;
    clear: both;
}

image

 

            13.opacity: 透明度(0-1)

.fix{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background-color:black;
    opacity:0.5;
}
<div class="fix"></div>

position: fixed 定位的元素无法通过 margin 来调整基于浏览器视口的位置,原因和它的定位机制有关:
当元素设置 position: fixed 时,它的定位参考是浏览器的视口(整个窗口),并且会完全脱离正常文档流。此时 margin 的作用逻辑发生了变化:
正常文档流中,margin 是用来控制元素与其他元素的间距;
但 fixed 定位的元素已经 “悬浮” 在视口上,margin 无法让它相对于视口产生偏移,只能影响它内部内容的排版(比如如果它里面有子元素,margin 可以控制子元素和它的间距)。

image

 

 

            14.position :    fixed     relative    absolute 后两者进行搭配使用

 

                  1.position:fixed:固定方式  相对于浏览器

                      脱离文档流,不影响去他元素布局  定位参考:浏览器视口  用于悬浮固定的场景

.fix{
    position:fixed;
    bottom:10px;
    right:10px;
    height:40px;
    width:40px;
    border:1px solid red;
}
<div class="fix"></div>

image

.bb{
    position:fixed;
    width:400px;
    height:400px;
    left:0;
    right:0;
    margin:0 auto;
    background-color:black;
}
<div class="bb"></div>

image

 

 

                  2.relative    absolute

.aa{
    position: relative;
    height: 500px;
    width: 500px;
    margin: 0 auto;
    border: 1px solid red;
}
.aa .bb{
    position: absolute;
    height: 50px;
    width: 50px;
    background-color: red;
}
<div class="aa">
    <div class="bb"></div>
</div>

image 

 

 

            15.box-shadow 是 CSS 中用于给元素添加阴影效果的属性,能让元素看起来有立体感,常用于按钮、卡片、输入框等组件的美化。

  • h-offset水平偏移量(必填)。正数向右,负数向左。
  • v-offset垂直偏移量(必填)。正数向下,负数向上。
  • blur模糊半径(可选)。值越大,阴影越模糊(默认为 0,即清晰边缘)。
  • spread阴影大小(可选)。正数扩大阴影,负数缩小阴影(默认为 0)。
  • color阴影颜色(可选)。默认使用文本颜色,建议显式指定(如 rgba(0,0,0,0.2))。
  • inset内阴影(可选)。添加后阴影会在元素内部显示(默认是外阴影)。
    box-shadow: 5px 5px 20px #aaa;

    image

posted @ 2025-10-25 00:28  guohan  阅读(7)  评论(0)    收藏  举报