CSS层叠样式表

本文深入探讨CSS层叠样式表的基本概念与高级技巧,包括基本语法、选择器、盒子模型、浮动及典型布局案例,适合前端开发者学习与参考。

CSS层叠样式表

CSS介绍

CSS 指层叠样式表 (Cascading Style Sheets)定义如何显示控制 HTML 元素,从而实现美化HTML网页。

优势

为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开,CSS由此思想而诞生,有了CSS,html中大部分表现样式的标签就废弃不用了,html只负责文档的结构和内容,表现形式完全交给CSS,html文档变得更加简洁。

基本语法

格式: 选择器{属性:值;属性:值;属性:值;…}

在这里插入图片描述

内联式

通过标签的style属性,在标签上直接写样式。在这里插入图片描述

嵌入式

通过style标签,在网页上创建嵌入的样式表。

在这里插入图片描述

外联式

通过link标签,链接到外部样式表到页面中。

在这里插入图片描述

常用CSS样式

文本设置

 color 		设置文字的颜色,如: color:red;
 font-size 	设置文字的大小,如:font-size:12px;
 font-family 	设置文字的字体,如:font-family:'微软雅黑';
 font-style 	设置字体是否倾斜,如:font-style:'normal'; 
	设置不倾斜,font-style:'italic';设置文字倾斜
 font-weight 	设置文字是否加粗,如:font-weight:bold; 
设置加粗 font-weight:normal 设置不加粗
 	  font 		同时设置文字的几个属性,写的顺序有兼容问题,建议按照如下顺序写:
  font:是否加粗 字号/行高 字体;如: font:normal 12px/36px '微软雅黑';
 line-height 	设置文字的行高,如:line-height:24px;
 text-decoration 设置文字的下划线,如:text-decoration:none; 将文字下划线去掉
 text-indent 	设置文字首行缩进,如:text-indent:24px; 设置文字首行缩进24px
 text-align 	设置文字水平对齐方式,如text-align:center 设置文字水平居中

颜色表示

css颜色值主要有三种表示方法:
1、颜色名表示,比如:red 红色,gold 金色
2、rgb表示,比如:rgb(255,0,0)表示红色
3、16进制数值表示,比如:#ff0000 表示红色,这种可以简写成 #f00

基本选择器

标签选择器

标签选择器,此种选择器影响范围大,建议尽量应用在层级选择器中。举例:在这里插入图片描述

id选择器

通过id名来选择元素,元素的id名称不能重复,所以一个样式设置项只能对应于页面上一个元素,不能复用,id名一般给程序使用,所以不推荐使用id作为选择器。举例:在这里插入图片描述

类选择器

通过类名来选择元素,一个类可应用于多个元素,一个元素上也可以使用多个类,应用灵活,可复用,是css中应用最多的一种选择器。举例:在这里插入图片描述

层级选择器

主要应用在选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用,减少命名,同时也可以通过层级,防止命名冲突。举例:在这里插入图片描述

组选择器

多个选择器,如果有同样的样式设置,可以使用组选择器。举例:

在这里插入图片描述

伪类及伪元素选择器

常用的伪类选择器有hover,表示鼠标悬浮在元素上时的状态,伪元素选择器有before和after,它们可以通过样式在元素中插入内容。在这里插入图片描述

盒子模型

所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。在这里插入图片描述

Margin(外边距) - 清除边框外的区域,外边距是透明的。
Border(边框) - 围绕在内边距和内容外的边框。
Padding(内边距) - 清除内容周围的区域,内边距是透明的。
Content(内容) - 盒子的内容,显示文本和图像。

在这里插入图片描述

盒子总宽度:
300px (宽)

  • 50px (左 + 右填充)
  • 50px (左 + 右边框)
  • 50px (左 + 右边距)
    = 450px

在这里插入图片描述

总元素的宽度=宽度+左填充+右填充+左边框
+右边框+左边距+右边距
总元素的高度=高度+顶部填充+底部填充+上边框
+下边框+上边距+下边距

CSS浮动

CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。
Float(浮动),往往是用于图像,但它在布局时一样非常有用。

元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。
一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
浮动元素之后的元素将围绕它。
浮动元素之前的元素将不会受到影响。
如果图像是右浮动,下面的文本流将环绕在它左边:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

典型布局案例

在这里插入图片描述

	<!DOCTYPE html>
	<html lang="en">
	<head>
	    <meta charset="UTF-8">
	    <title>Title</title>
	    <style>
	        * {
	            margin: 0;
	            padding: 0;
	        }
	
	        .container{
	            /*设置分页居中显示*/
	            margin: 0 auto;
	            width: 50%;
	
	        }
	        .pagination > li {
	            /*删除无需列表前面的标记*/
	            list-style: none;
	            /*行内块元素。(CSS2.1 新增的值)*/
	            display: inline-block;
	            /*设置宽度*/
	            width: 30px;
	
	            /*添加边框*/
	            /*border: 1px solid black;*/
	
	            /*设置字体大小*/
	            font-size: 12px;
	
	            /*字体居中*/
	            text-align: center;
	
	            /*设置内边距: 上下为5px, 左右为10px*/
	            padding: 5px 10px;
	
	            /*设置背景颜色*/
	            background-color: gold;
	        }
	
	        .pagination > li > a {
	            /*删除超链接的下划线*/
	            text-decoration: none;
	            /*设置字体颜色为黑色*/
	            color: black;
	        }
	
	        .pagination>li:hover{
	            /*background-color: goldenrod;*/
	            font-size: 110%;
	        }
	
	    </style>
	
	</head>
	<body>
	
	<div class="container">
	    <h1>分页案例</h1>
	    <ul class="pagination">
	        <li><a href="#">&lt;&lt;</a></li>
	        <li><a href="#">1</a></li>
	        <li><a href="#">2</a></li>
	        <li><a href="#">3</a></li>
	        <li>...</li>
	        <li><a href="#">18</a></li>
	        <li><a href="#">19</a></li>
	        <li><a href="#">20</a></li>
	        <li><a href="#">&gt;&gt;</a></li>
	
	    </ul>
	</div>
	
	
	</body>
	</html>

在这里插入图片描述

在这里插入图片描述

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }

        .header {
            width: 100%;
            height: 40px;
            background-color: #55a8ea;
            /*内容会被修剪,并且其余内容是不可见的。*/
            overflow: hidden;


        }

        .header li {
            /*设置li为行内块级元素*/
            display: inline-block;
            width: 100px;
            height: 40px;
            padding-top: 12px;
            text-align: center;

        }

        .header li:hover{
            background-color: #00619f;;
        }

        .header li a{
            text-decoration: none;
            color: #fff;
            font-size: 14px;
            font-weight: bold;
        }

        .active{
            background-color: #00619f;
        }


    </style>
</head>
<body>
<!--导航栏设置-->
<div class="header">
    <ul>
        <li class="active"><a href="#">首页</a></li>
        <li><a href="#">网站建设</a></li>
        <li><a href="#">程序开发</a></li>
        <li><a href="#">网络营销</a></li>
        <li><a href="#">案例展示</a></li>
        <li><a href="#">联系我们</a></li>
    </ul>

</div>

</body>
</html>
电影排行榜
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }


        .box {
            width: 300px;
            height: 450px;
            border: 1px solid gray;
            margin: 0 auto;
            margin-top: 50px;
        }

        .box h1 {
            color: green;
            font-size: 20px;
            line-height: 35px;
            font-weight: bold;
            border: 1px dashed gray;
            padding-left: 10px;
        }


        .box li {
            list-style: none;
            padding: 10px 15px;
            border: 1px dashed gray;

        }


        .box li span {
            background-color: gray;
            display: inline-block;
            width: 20px;
            height: 20px;
            color: white;
            text-align: center;
        }


        .box li:nth-child(-n+3) span {
            background-color: green;
            color: white;
        }

        .content {
            overflow: hidden;
            margin-top: 5px;
            display: none;
        }

        .content img {
            width: 80px;
            height: 120px;
            float: left;
        }

        .content p {
            width: 180px;
            height: 120px;
            float: right;
            font-size: 12px;

        }


        .current .content{
            display: block;
        }
    </style>
    <script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>

    <script>
        $(function () {
            $('li').mouseenter(function () {
                $(this).addClass('current');

            });

            $('li').mouseleave(function () {
                $(this).removeClass('current');

            });
        })

    </script>
</head>
<body>

<div class="box">
    <h1>电影排行榜</h1>
    <ul>
        <li>
            <span>1</span> 哪吒之魔童降世
            <div class="content ">
                <img src="img/movie.jpg">
                <p>
                    天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸, 灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。 元始天尊启动了天劫咒
                </p>
            </div>
        </li>

        <li>
            <span>2</span> 哪吒之魔童降世
            <div class="content ">
                <img src="img/movie.jpg">
                <p>
                    天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸, 灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。 元始天尊启动了天劫咒
                </p>
            </div>
        </li>

        <li>
            <span>3</span> 哪吒之魔童降世
            <div class="content">
                <img src="img/movie.jpg">
                <p>
                    天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸, 灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。 元始天尊启动了天劫咒
                </p>
            </div>
        </li>
        <li>
            <span>4</span> 哪吒之魔童降世
            <div class="content">
                <img src="img/movie.jpg">
                <p>
                    天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸, 灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。 元始天尊启动了天劫咒
                </p>
            </div>
        </li>
        <li>
            <span>5</span> 哪吒之魔童降世
            <div class="content">
                <img src="img/movie.jpg">
                <p>
                    天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸, 灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。 元始天尊启动了天劫咒
                </p>
            </div>
        </li>

    </ul>
</div>


</body>
</html>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值