CSS样式基础内容3

news2024/11/26 9:31:51

目录

CSS三大特性

层叠性

继承性

行高的继承性

优先级

权重的叠加

CSS盒子模型

border边框

边框的复合写法

表格的细线边框

边框会影响盒子的实际大小

内边距

padding会影响盒子实际大小

网页导航案例

外边距

外边距合并

相邻块元素垂直外边距的合并

清除内外边距

 综合案例

产品模块布局分析


CSS三大特性

层叠性

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

层叠性原则:

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

继承性

行高的继承性

<!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>
        body {
            color: pink;
            /* font: 12px/24px '微软雅黑'; */
            /* 文字大小/行高 */

            font: 12px/1.5 '微软雅黑';
        }

        div {
            /* 子元素继承了父元素body的行高1.5 */
            /* 这个1.5就是当前元素文字大小的1.5倍,所以当前div的行高就是21像素*/
            font-size: 14px;
        }

        p {
            font-size: 16px;
        }

        /* li没有手动指定文字大小,则会继承父亲的文字大小    body的字体大小为12px,
        li的所有文字大小为12px*1.5 */
    </style>
</head>

<body>
    <div>粉红色的回忆</div>
    <p>粉红色的回忆</p>
    <ul>
        <li>我没有指定文字大小</li>
    </ul>
</body>

</html>

优先级

权重是有4组数组组成,但是不会有进位

类选择器永远大于元素选择器,id选择器永远大于类选择器,行内样式大于id选择器

!important是最高的优先级

等级判断从左向右,如果某一位数值相同,则判断下一位数值

<!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>CSS优先级</title>
    <style>
        /* 元素选择器 */
        div {
            color: pink;
        }

        .test {
            color: red !important;
        }

        #demo {
            color: blue;
        }
    </style>
</head>

<body>
    <div class="test" id="demo" style="color: purple">世界这么大,我想去看看</div>
</body>

</html>

通配符和继承权重为0标签选择器为1,类(伪类)选择器为10,id选择器为100,行内样式表为1000,!important为无穷大

如果该元素没有直接选中,不管父元素权重多高,子元素得到的权重都是0

<!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>CSS权重注意点</title>
    <style>
        /* 父亲的权重为100 */
        #father {
            color: red;
        }

        /* p继承的权重为0 */
        p {
            color: pink;
        }

        body {
            color: black;
        }
        /* a链接浏览器默认了一个样式,蓝色的,有下划线 */
    </style>
</head>

<body>
    <div id="father">
        <p>世界这么大,我想去看看</p>
        <!-- 自己写的是元素选择器权重为1,所以为粉色 -->
    </div>
    <a href="#">我是单独的样式</a>
</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>
        /* li的权重是0,0,0,1 */
        li {
            color: red;
        }

        /* 复合选择器会有权重叠加的问题 */
        /* ul里面的权重是0,0,0,1+0,0,0,1 */
        ul li {
            color: green;
        }

        /* 权重为0,0,1,0+0,0,0,1 */
        .nav li {
            color: pink;
        }
    </style>
</head>

<body>
    <ul class="nav">
        <!-- pink色 -->
        <li>123</li>
        <li>456</li>
        <li>897</li>
    </ul>
</body>

</html>

CSS盒子模型

主要内容:border边框;content内容;padding内边距;外边距margin

border边框

属性作用
border-width定义边框粗细
border-style边框的样式
border-color边框颜色

边框的复合写法

<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>
        div {
            width: 300px;
            height: 200px;
            /* border-width: 5px;
            border-style: solid;
            border-color: pink; */

            border: 5px solid red;
            /* 没有先后顺序 */

            border-top: 5px solid pink;
            /* 只设定上边框,其余同理;下边框为bottom */

            border-bottom: 5px dashed pink;
        }
    </style>
</head>

表格的细线边框

border-collapse属性控制浏览器绘制表格边框的方式,它控制相邻单元格的边框合并

border-collapse:collapse单词是合并的意思

边框会影响盒子的实际大小

边框是加在盒子外边的,而并不占用盒子本身的大小

内边距

padding属性用于设置内边距,即边框与内容之间的距离

<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>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            padding-left: 20px;
            padding-top: 30px;

            /* 内边距复合写法 */
            padding: 5px;
            /* 上下左右都有5像素内边距 */
            padding: 5px 10px;
            /* 上下内边距是5像素,左右内边距是10像素 */
            padding: 5px 10px 20px;
            /* 上内边距5像素,左右内边距10像素,下内边距20像素 */
            padding: 5px 10px 20px 30px;
            /* 上是5像素,右10像素,下20像素,左30像素 */
        }
    </style>
</head>

padding会影响盒子实际大小

如果盒子已经有了宽度和高度,此时再指定内边框,会撑大盒子

但是盒子本身没有指定width/height属性,则此时padding不会撑开盒子大小

网页导航案例

<!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>
        .nav {
            height: 41px;
            border-top: 3px solid #ff8500;
            border-bottom: 1px solid #edeef0;
            background-color: #fcfcfc;
            line-height: 41px;
        }

        .nav a {
            /* 行内元素转为行内块元素 */
            display: inline-block;
            height: 41px;
            padding: 0 20px;
            font-size: 12px;
            color: #4c4c4c;
            text-decoration: none;

        }

        .nav a:hover {
            background-color: #eee;
            color: #ff8500;
        }
    </style>
</head>

<body>
    <div class="nav">
        <a href="#">新浪导航</a>
        <a href="#">手机新浪网</a>
        <a href="#">移动客户端</a>
        <a href="#">微博</a>
        <a href="#">三个字</a>
    </div>
</body>

</html>

外边距

margin属性用于设置外边距,即控制盒子和盒子之间的距离

<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>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        .one {
            margin-bottom: 20px;
        }
    </style>
</head>

<body>
    <div class="one">1</div>
    <div>2</div>
</body>

外边距可以让块级盒子水平居中,但是盒子必须指定宽度;盒子左右的外边距都设置为auto

<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>
        .header {
            width: 900px;
            height: 200px;
            background-color: pink;
            margin-left: auto;
            margin-right: auto;

            margin: auto;

            margin: 0 auto;
            /* 上下为0,左右为auto */
        }
    </style>
</head>

行内元素和行内块元素水平居中

如果想让行内元素或者行内块元素居中给其父元素添加text-align:center即可

<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>
        .header {
            width: 900px;
            height: 200px;
            background-color: pink;
            margin: 100px auto;
            text-align: center;
        }

        /* 行内元素或者行内块元素水平居中给其父元素添加text-align:center即可 */
    </style>
</head>

<body>
    <div class="header">
        <span>里面的文字</span>
    </div>
    <div class="header">
        <img src="down.jpg" alt="">
    </div>
</body>

外边距合并

相邻块元素垂直外边距的合并

当上下相邻的两个块元素(兄弟关系)相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则它们之间的垂直间距不是二者之和,而是取两个值中较大者这种现象被称为相邻块元素垂直外边距的合并

对于两个嵌套关系(父子关系)的块元素,父元素有上外边距同时子元素也有上外边距,此时父元素会塌陷较大的外边距值

三种解决方案

  • 可以为父元素定义上边框
  • 可以为父元素定义上内边距
  • 可以为父元素添加overflow:hidden
<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;
            height: 400px;
            background-color: purple;
            margin-top: 50px;
            /* 第一种方案 */
            /* border: 1px solid transparent; */
            /* 第二种方案 */
            /* padding: 1px; */
            /* 第三种方案 */
            overflow: hidden;
        }

        .son {
            width: 200px;
            height: 200px;
            background-color: pink;
            margin-top: 100px;
        }
    </style>
</head>

<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>

清除内外边距

 综合案例

产品模块布局分析

<!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>
        * {
            margin: 0;
            padding: 0;
        }

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

        body {
            background-color: #f5f5f5;
        }

        .box {
            width: 298px;
            height: 415px;
            background-color: white;
            /* 让块级的盒子水平居中对齐 */
            margin: 100px auto;
        }

        .box img {
            /* 图片的宽度和父亲一样宽 */
            width: 100%;
            height: 249px;
        }

        .review {
            height: 70px;
            font: 20px '楷体';
            /* 因为这个段落没有width属性,所以padding不会撑开盒子的宽度 */
            padding: 0 28px;
            margin-top: 30px;
        }

        .appraise {
            font-size: 12px;
            color: #b0b0b0;
            margin-top: 20px;
            padding: 0 28px;
        }

        .info {
            font-size: 14px;
            margin-top: 15px;
            padding: 0 28px;
        }

        .info h4 {
            display: inline-block;
            font-weight: 400;
        }

        .info span {
            color: #ff6700;
        }

        .info em {
            font-style: normal;
            color: #ebe4e0;
            margin: 0 6px 0 15px;
        }
    </style>
</head>

<body>
    <div class="box">
        <img src="img.jpg" alt="">
        <p class="review">图片好,整体看是雪景</p>
        <div class="appraise">来自于159846753的评价</div>
        <div class="info">
            <h4><a href="#">Redmi AirDots真无线蓝……</a></h4>
            <em>|</em>
            <span>99.9元</span>
        </div>
    </div>
</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/181054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

go语言实战(猜数字+在线词典+服务器)

go语言实战案例1.猜数字游戏2. 词典2.1 request2.2 response2.3 修改写死的单词为用户可写的word2.4 细节优化2.4.1 防止403、404等状态码2.4.2 增强输出可读性2.5 在线词典的最终代码3.SOCKS5代理服务器3.1 tcp echo server3.2 验证3.3 请求3.4 完整代理实现作业1.修改第一个猜…

cadence SPB17.4 S032 - allegro出的槽孔文件不用做任何处理就可以交给板厂生产

文章目录cadence SPB17.4 S032 - allegro出的槽孔文件不用做任何处理就可以交给板厂生产前言备注补充 - CAM350V14.6 - 在win10 22H2下不能正常用ENDcadence SPB17.4 S032 - allegro出的槽孔文件不用做任何处理就可以交给板厂生产 前言 以前交给板厂gerber文件时, 有一次, 板…

Pandas学习笔记-Day1安装与文件读取

Day1 安装与文件读取了解与安装什么是pandas?安装pandas?pandas数据读取读取mysql数据库了解与安装 什么是pandas? 处理数据一般分为几个阶段&#xff1a;数据整理与清洗、数据分析与建模、数据可视化与制表&#xff0c;Pandas 是处理数据的理想工具。 安装pandas? 如果…

自动驾驶感知——图像数据处理数学方法

文章目录1. 二值化操作2. 卷积操作3. 均值滤波4. 高斯滤波5. 图像梯度算子5.1 Prewitt梯度算子5.2 Sobel梯度算子5.3 Laplace二阶梯度6. 边缘特征点提取算子7. 基于规则的特征点提取8. 最小二乘拟合方法9. RANSAC曲线拟合10. Hough Transform 霍夫变换11. 基于学习的特征点提取…

图论(4)Floyd算法

一、概述 floyd算法主要作用有&#xff1a;1.找最短路 2.求传递闭包 3.找最小环 4.求出恰好经过k条边的最短路 本文章将介绍floyd求最短路的证明以及以上四个作用的实践。 二、floyd算法求最短路的证明 之前就多次提到过图论与dp问题的联系&#xff0c;floyd算法可以…

Go依赖管理

"做讨厌潮汐的稚童&#xff0c;祈祷月球失踪。"一、背景我们写一个程序&#xff0c;例如输出hello world 或者 一个猜数字游戏&#xff0c;这些用到的单体函数接口&#xff0c;只需要依赖一些原生的SDK即可。但是&#xff0c;面对复杂的实际问题、工程&#xff0c;仅…

使用构建工具创建Vue项目

使用构建工具创建Vue项目一、使用vue-cli脚手架构建vue项目创建步骤&#xff1a;二、使用 Vite构建vue项目创建步骤&#xff1a;一、使用vue-cli脚手架构建vue项目 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统&#xff0c;提供&#xff1a; 1 通过 vue/cli 实现的交互式…

演讲比赛流程管理系统

1. 演讲比赛程序需求 1.2程序功能 2. 项目创建 创建名为speech_contest的目录名称 3. 创建管理类 功能描述&#xff1a; 提供菜单界面与用户交互 对演讲比赛流程进行控制 与文件的读写交互 3.1 创建文件 在头文件和源文件的文件夹下分别创建speech…

ubuntu 学习笔记

环境&#xff1a;Ubuntu 22.04 桌面版和server版 一、更换国内源&#xff0c;下载更快 1、源文件路径&#xff1a;/etc/apt/sources.list&#xff0c;到这个路径下备份一下源文件。 #备份原有配置文件命令 sudo cp -r /etc/apt/sources.list /etc/apt/sources.list.backup …

C primer plus学习笔记 —— 14、限定关键字(const、volatile、restrict、_Atomic)

文章目录const 关键字修饰变量修饰指针修饰形参修饰全局变量volatile关键字restrict关键字_Atomic关键字&#xff08;c11&#xff09;const 关键字 修饰变量 将变量变为只读 const int nochange; nochange 4; //不允许 const int a 5; //没问题const int a[3] {3, 5, 6};…

Hive--14---使用sum() over() 实现累积求和

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录Hive中使用over()实现累积求和1.总求和sum(需要求和的列) over(partition by 分组列 )数据准备需求1以地区号网点号币种 为唯一键&#xff0c;求总的金额需求2以地区…

python图像处理(高斯滤波)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在谈高斯滤波之前,我们不妨回顾一下之前谈到的均值滤波和中值滤波。均值滤波,就是对像素点以及周围的8个点计算平均值,然后赋值给新像素点。而中值滤波,则是对像素点及周围的8个…

6. 初识多线程编程

1. 多线程 多线程非常重要&#xff0c;工作中用到的也是非常多&#xff0c;面试时也100%会问多线程。 关于多线程的相关知识&#xff0c;可以参考《计算机操作系统(第四版)》&#xff0c;或者自行百度查看有关文章以及视频都可以&#xff0c;此处不再赘述。 2. python中的多…

常用网址-2023整理

办公&效率人民币大写转换 人民币大写 人民币RMB数字转大写汉字工具我的账单 - 支付宝Bypass - 分流抢票Zen Flowchart - 在线流程图MindMaster - 在线思维导图【抠图】在线抠图软件_AI抠图证件照换底色-稿定设计Visio模板推荐与VisualNet图库转化语音转文字iconfont-阿里巴…

LeetCode动态规划经典题目(九):middle

学习目标&#xff1a; 进一步了解并掌握动态规划 学习内容&#xff1a; 4. LeetCode62. 不同路径https://leetcode.cn/problems/unique-paths/ 5. LeetCode63. 不同路径 IIhttps://leetcode.cn/problems/unique-paths-ii/ 6. LeetCode343. 整数拆分https://leetcode.cn/pro…

人工智能学习06--pytorch06--神经网络骨架nn.Module scipy下载 现有网络模型的使用及修改(VGG16)

神经网络骨架nn.Module 括号里nn.Module表示继承Module类init 初始化 调用父类初始化函数forward scipy下载 pip install scipy -i https://pypi.douban.com/simple/ 现有网络模型的使用及修改&#xff08;VGG16&#xff09; pretrained为True时需要下载&#xff0c;在ima…

1. Spring 基础入门

文章目录1. 初识 spring1.1 系统架构1.2 学习路线1.3 核心概念2. IoC 与 DI 入门案例&#xff08;xml版&#xff09;2.1 IoC&#xff08;控制反转&#xff09;2.2 DI&#xff08;依赖注入&#xff09;3. bean 配置3.1 bean 基础配置3.2 bean 别名配置3.3 bean 作用范围配置4. b…

file控件与input标签的属性type=“hidden“标签

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>file控件于与input标签的属性type"hidden"标签</title> </head> <body bgcolor"antiquewhite"> …

k8s中使用Deployment控制器实现升级、回滚、弹性伸缩

前置条件&#xff1a;linux机器已安装k8s集群基于yaml文件创建pod,本次创建pod使用的web.yaml如下apiVersion: apps/v1 kind: Deployment metadata:creationTimestamp: nulllabels:app: webname: web spec:replicas: 2selector:matchLabels:app: webstrategy: {}template:metad…

从零开始的数模(八)TOPSIS模型

一、概念 1.1评价方法概述 1.2概念 TOPSIS &#xff08;Technique for Order Preference by Similarity to an Ideal Solution &#xff09;模型中文叫做“逼近理想解排序方法”&#xff0c;是根据评价对象与理想化目标的接近程度进行排序的方法&#xff0c;是一种距离综合评…