CSS(三)

2023-11-16

目录

CSS三大特性:层叠性、继承性、优先级

层叠性:

继承性:  

优先级: 

页面布局三大核心:盒子模型、浮动、定位

 CSS盒子模型:

网页布局过程:

盒子模型组成:

​编辑​编辑

边框:(border)

内边距:(padding )

外边距:(margin)

PS基本操作:​

补充知识:去掉 li 前面的小圆点

圆角边框*:border-radius

盒子阴影*: box-shadow

文字阴影:text-shadow


CSS三大特性:层叠性、继承性、优先级

  • 层叠性:

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

层叠性原则:

  1. 样式冲突时遵循的原则是就近原则,那个样式离结构近,就执行哪个样式
  2. 没有冲突的样式不会被层叠
 div {
        color: red;   //被层叠
        background-color: black; //未被层叠
      }
 div {
        color: pink;   //离<div>标签更近,最终文本颜色为粉红色
      }
 <div >长江后浪推前浪</div>
  • 继承性:  

        继承性指的是子标签会继承父标签的某些样式

  1. 恰当利用继承性可以简化代码
  2. 子元素可以继承以 text- ,font-,line-开头的属性以及color属性

行高的继承性:

body {
   font: 12px/1.5 "Microsoft YaHei";
}
  1. 行高可以跟单位px,也可以不跟单位,不跟单位时,行高为当前元素文字大小(font-size)的相应倍数
  2. 以上面代码示例为例:√ 如果body的子元素本身也设置了行高,按照继承的就近原则此时行高为当前元素文字大小的指定倍数

                                             √ 如果子元素没有设置行高,则会继承父元素指定的倍数           

  • 优先级: 

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

  1. 选择器相同时,则根据层叠性执行(就近原则)
  2. 选择器不同时,则根据选择器权重执行

 在某一样式分号之前加上 !important 后,权重最高,会被优先执行

注意:

  1. 权重由4位数字组成,但不会有进位
  2. 以上选择器权重可简单记忆为:通配符和继承——0,标签选择器——1,类(伪类)选择器——10,id选择器——100,行内样式表——1000,!important——无穷大
  3. 继承的权重是0,如果元素没有被直接选中,不管父元素的权重有多高,当元素本身有样式时,不继承父元素样式。(可形象记忆为:自己有自己的安排时,按照自己的节奏走,不管父母的安排,没有的时候就按照父母规定的来)

权重叠加:

      如果是复合选择器,则会有权重叠加,需计算权重

     eg:div  ul  li ——> 0,0,0,1 + 0,0,0,1 + 0,0,0,1 = 0,0,0,3

            .nav  ul  li ——> 0,0,0,10 + 0,0,0,1 + 0,0,0,1 = 0,0,1,2

            a:hover ——> 0,0,0,1 + 0,0,10 = 0,0,1,1

            .nav .red ——> 0,0,1,0 + 0,0,1,0 = 0,0,2,0 

页面布局三大核心:盒子模型、浮动、定位

 CSS盒子模型:

  • 网页布局过程:

  1. 准备好相关的网页元素,基本上都是盒子
  2. 利用CSS设置盒子样式,摆放到相应位置(网页布局的核心本质)
  3. 往盒子里面装内容
  • 盒子模型组成:

CSS盒子模型本质上是一个盒子,封装周围的HTML元素,包括:边框、内边距、外边距和内容

边框:(border)

 边框有三部分组成:边框粗细边框样式边框颜色

属性border-style的值有很多种,主要记住其中的三个:

 solid:实线       dashed:虚线     dotted:点线

 

 边框样式的复合写法:

border: 1px solid red; 三个属性之间不分先后顺序

边框分开写法:(边框的上下左右可以分别设置不同样式)

属性 作用
border-top 上边框
border-bottom 下边框
border-left 左边框
border-right 右边框

表格的边框合并:

border-collapse:控制浏览器绘制表格边框的方式,控制相邻单元个的边框

border-collapse: collapse;
把相邻边框合并在一起

注意:

给盒子加边框会影响盒子的实际大小,可以通过weight/height减去边框大小保持盒子实际大小

内边距:(padding )

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

  

 内边距的复合写法:

注意:

  1. 给盒子设置内边距会影响盒子的实际大小,可以通过wigth/height减去多余内边距大小实现盒子和要求大小一致 
  2. 当导航栏字数不一样时,一般不通过设置盒子宽度使文字间隔相同,而是直接用padding设置内边距 
  3. 如果盒子本身没有指定width/hight属性,则此时pedding不会撑开盒子大小

 外边距:(margin)

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

外边距的复合写法和内边距一样

外边距典型应用:
外边距可以让块状盒子水平居中。必须满意两个条件:

  1. 盒子必须指定宽度
  2. 盒子左右外边距都设置为auto
div {
   width: 100px;
   margin: 0 auto;(经典代码)

}

注意:该方法只能让块级元素水平居中,行内元素或者行内块元素水平居中给其父元素添加 text-align: center 即可

外边距合并:

使用margin定义块元素的垂直外边距时,可能会出现外边距的合并

  1. 相邻块元素垂直外边距的合并: 上下相邻的两个块元素,上面的元素有下外边距,下面的元素有上外边距,取两个值中的较大者作为两个块元素的垂直外边距
  2. 嵌套块元素垂直外边距的塌陷:对于两个嵌套关系(父子关系)的块元素,父元素有上边距,同时子元素也有上外边距,此时父元素会塌陷较大的外边距

    解决方法:

  1.  为父元素定义上边框,边框颜色可以选为transparent
  2. 为父元素定义上内边框
  3. 为父元素添加代码:overflow: hidden 

      添加上边框或上内边框都会改变父元素盒子的大小,而添加overflow: hidden,不会影响盒子大小

清除内外边距:

* {
    通常该样式为CSS的第一行代码
    margin: 0;  (清除外边距)
    padding: 0; (清除内边距)
}

考虑到兼容性,行内元素尽量只设置左右内外边距,不要设置上下内外边距,但是转换为块级元素和行内块元素就可以设置了

PS基本操作: 

补充知识:去掉 li 前面的小圆点

list-style: none;

圆角边框*:border-radius

border-radius: 10px;    //  radius: 半径
  • 参数值:可以是数值(如:10px)也可以是百分比(如:50%)
  • 参数值可以为4个,分别是:左上角、右上角、左下角、右下角
  • 参数值可以为2个,分别是:左上角+右下角、右上角+左下角(对角线)
  • 也可以为单独某一个角设置弧度:border-top-left-radius(左上角)、border-top-right-radius(右上角)、border-bottom-left-radius(左下角)、border-bottom-right-radius(右下角)
  1. 原理:圆与边框的交集形成圆角效果
  2. 圆边框:先准备一个正方形的盒子,将border-radius参数值设为高度(或宽度)的一半,或者设为50%
  3. 圆角矩形边框:先准备一个长方形的盒子,将border-radius参数值设为高度的一半

盒子阴影*: box-shadow

box-shadow: h-shadow v-shadow blur spread color inset

box-shadow: 10px 10px 10px 10px black 
描述
h-shdow 必需。水平阴影的位置。当值为负数时,阴影往左
v-shadow 必需。垂直阴影的位置。当值为负数时,阴影往上
blur 可选。模糊距离(模糊程度)。值越大越模糊
spread 可选。阴影的尺寸(大小)
color 可选。阴影的颜色
inset 可选。默认为外部阴影(outset),若需内部阴影则添加inset

 注意:

  1. outset不需要写,否则会导致盒子阴影效果失效
  2. 盒子阴影不占用空间,不会影响其他盒子排列

文字阴影:text-shadow

text-shadow: h-shadow v-shadow blur color
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS(三) 的相关文章

  • 为什么table-layout:fixed会影响父元素的宽度?

    有人可以解释为什么我的div with table layout fixed正在改变其父元素的宽度 body在本例中 使其在不应该是 100 的情况下达到 100 因为它已经定位了 body border 2px solid red hei
  • 如何缩放 SVG 路径以适应窗口大小?

    我在缩放 SVG 以适应窗口大小时遇到 了麻烦 在这个例子中 我有一个波浪路径和一个文本元素 我想在这里实现的是沿着波浪路径从左到右移动文本元素 这是由GSAP完成的 并停在路径的中间在初始负载下 当用户开始滚动时 它将移至末尾 我的问题是
  • Bootstrap 按钮的检查状态

    我想在 Bootstrap 3 0 2 中设置组复选框的选中状态 docs http getbootstrap com javascript buttons html div class btn group div
  • 裁剪响应式全宽图像

    我必须剪辑跨越整个宽度的图像 以下事情对我不起作用 剪辑 这需要绝对位置 因此块元素不会堆叠在下面 背景位置 缩放时无法正确剪辑 放大时剪辑的部分会增加 反之亦然 包装器 包装器高度取决于浏览器宽度 因此其值应该是动态的 我使用了 seti
  • 强制应用媒体查询

    我有这个 html 和 css 代码 div class wrapper div class a div div class b div div media all and max width 400px max height 300px
  • Zurb 基金会粘性页脚

    我想使用 Foundation 4 拥有粘性页脚 并且我想使用 HTML5
  • 如何让 ExtJS ComboBox 与文本一起显示?

    我想让以下内容显示在一行中 我尝试过使用样式浮动和显示 Show this input
  • Ace Editor 自动完成和多种语言

    如何为 Ace 编辑器创建自动完成功能以及如何突出显示 php 中的 html javascript 和 csshttp ace ajax org http ace ajax org
  • 标题后的三角形与标题背景渐变相匹配

    我必须制作这样的标题 我用这个渐变制作标题没有问题 我也知道如何定位三角形 after 但是 如何使三角形颜色与标题背景相匹配 问题是梯度不是静态的 例如 如果我在智能手机中打开页面 由于屏幕较短 渐变将比在显示器中打开更 紧凑 所以箭头颜
  • 如何使弹出窗口溢出:在溢出内可见:自动上下文

    我有一个 div 列表 如果超过父框 overflow x 应该滚动 并且在悬停时 我想看到一个弹出窗口 我的问题是 如果我将鼠标悬停在任何子 div 上 弹出窗口将被考虑用于溢出计算 但我只想让它在所有内容之上可见 而不是使其扩展滚动区域
  • JQuery 设置动态最大宽度

    我不太擅长 jQuery 因此完整的代码解决方案将是理想的选择 该函数将 获取浏览器屏幕的 70 宽度 将该宽度转换为其相应的 px 值 设置最大宽度 mainContainer使用从转换 计算中获得的值 这是我要设置的容器的 CSS 样式
  • 如何使用 CSS 使文本区域居中?

    请原谅我问这么简单的问题 我对 HTML 和 CSS 都很陌生 有没有一种简单的方法可以使文本区域居中 我想我只是尝试使用 textarea margin left auto margin right auto 但它 显然 不起作用 边距不
  • CSS3 变换:IE 中的缩放

    我想使用CSS3属性transform scale div transform scale 0 5 0 5 有没有办法在 Internet Explorer 8 及更低版本中模仿这个 可能与filter或者 JavaScript 解决方案
  • 在问题内显示内联块文本

    我一直在尝试显示内联块 如果我没有在 div 中添加任何内容 一切都会很好 但是当我这样做时 div 会折叠起来 我不知道确切的原因 任何想法 https jsfiddle net giancorzo ebqoptbd https jsfi
  • 如何使用 CSS 或 jQuery 设置第一个和最后一个 li 的样式?

    我如何设计第一个 顶级 li和最后一个 顶层 li使用 CSS 还是 jQuery 我正在使用 CSS 设置第一个li但它也是造型第一li在每个中学阶段ul 那么我怎样才能让它只设置样式li其中包含 Main 1 最后一个包含 Main 6
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • CSS 边框样式 INSET 或 GROOVE 看起来与 IE9 FF4 或 Safari5 或 Chrome2 非常不同

    抱歉 我是个白痴 但是当我尝试获得某种凹槽效果或插入效果作为边框样式时 我从不同的浏览器中得到了一些非常非常大的视觉结果 使用时 border 5px groove A00 or border 5px inset A00 Firefox 3
  • 使用 float:left 与 display:inline-block 的 jQuery UI 拖放排序比较

    我这里有两个例子 这两个例子之间的唯一区别是 一种使用display inline block 另一种使用float left li doc item 显示 内联块 与 li doc item float left 我的问题是 displa
  • WordPress 子主题包括包含文件

    我在一家WordPress使用 AMPPS 作为本地主机在我的本地计算机上进行设置 使用 Delta 主题 我创建了一个子主题 delta2 child 初始设置效果很好 但是 我需要更改包含文件夹中名为 home slider php 的
  • 为什么这些内联块元素会产生额外的宽度?

    这是这个问题的后续内容 仅使用 css 自动调整图像下的文本 https stackoverflow com questions 34185547 autofit text under image with only css 为什么这段代码

随机推荐

  • 锁消除和锁粗化

    一 锁消除 JIT 及时编译器 对锁的优化 因为正常都是多个线程去竞争同一把锁 但是当前代码中每调用一次m1方法就会创建一个新的对象 也可以理解为每个线程对应了一把新的锁 没有竞争的情况 毫无意义 所以叫锁消除 锁消除 public cla
  • C语言实现数据高低位翻转

    通过指针转换为字节类型 直接交换 include
  • 73. Set Matrix Zeroes

    Given a m x n matrix if an element is 0 set its entire row and column to 0 Do it in place 这题有很多方法 一开始想的是用O m n 的空间 用vect
  • 使用Freemarker 实现JSP页面的静态化

    使用Freemarker 静态化网页 一 原理 Freemarker 生成静态页面 首先需要使用自己定义的模板页面 这个模板页面可以是最最普通的html 也可以是嵌套freemarker中的 取值表达式 标签或者自定义标签等等 然后后台读取
  • 【网络】Wireshark分析RST消息

    文章目录 前言 1 定义 2 有三个条件可以产生RST 3 说明 4 RST数据报文产生情况 1 端口未打开 系列文章 Wireshark分析Netty建链过程 tcp三次握手 osi模型 IPV4数据报头部格式 Wireshark分析RS
  • 数据结构双向链表,实现增删改查

    一 双向链表的描述 在单链表中 查找直接后继结点的执行时间为O 1 而查找直接前驱的执行时间为O n 为克服单链表这种单向性的缺点 可以用双向链表 在双向链表的结点中有两个指针域 一个指向直接后继 另一个指向直接前驱 二 双向链表的存储结构
  • Base64 转 文件下载

    将base64字符串转化为文件 1 将下面代码另存为html文件 2 用浏览器打开 3 点击下载 代码如下 div 输入base64字符串 div
  • opensips之yyparse( )

    parse the config file prior to this only default values e g for debugging settings will be used yyin cfg stream if yypar
  • HTTPS协议详解

    文章目录 一 HTTPS是什么 二 HTTPS的工作过程 引入对称加密 引入非对称加密 引入证书 总结 三 HTTPS 与 HTTP 的区别 区别 HTTPS的优缺点 总结 一 HTTPS是什么 HTTPS HTTPS 也是一个应用层协议
  • stm32f10x 时钟系统详解/时钟树/时钟初始化/SystemInit函数全注解

    STM32F10x 时钟系统初学总结 一 时钟系统 1 概述 用通俗的话来说 时钟是单片机的 脉搏 是单片机的驱动源 使用单片机中的任何一个外设都必须打开此外设相应的时钟 这样的好处是 在不使用某个外设的时候 关闭此时钟外设 从而可以降低系
  • 合并两个有序链表(精美图示详解哦)

    全文目录 引言 合并两个有序链表 题目描述 方法一 将第二个链表合并到第一个 思路 实现 方法二 尾插到哨兵位的头节点 思路 实现 总结 引言 在前面两篇文章中 我们介绍了几道链表的习题 反转链表 链表的中间结点 链表的倒数第k个结点 戳我
  • 深度学习实战28-AIGC项目:自动生成定制化的PPT文件

    大家好 我是微学AI 今天给大家介绍一下深度学习实战28 AIGC项目 自动生成定制化的PPT文件 AIGC项目是一个基于自然语言处理技术的创新性项目 旨在利用ChatGPT模型生成定制化的PPT文件 该项目主要应用于商务和教育领域 可以帮
  • 中文NLP的第二步:分词转词表ID,基于 PaddleHub 实现(学习心得)

    上一步我们做了分词 中文NLP的第一步 分词 基于 PaddleHub 实现 绝对小白友好 学习心得 第二步是把分词结果 对照词表转化成 ID 词表是什么呢 首先我们要知道 中文字符是没办法直接计算的 更不要说进一步的操作了 所以我们需要的
  • qmake常用语法

    qmake常用语法 一 注释 用 注释 表示到行尾均为注释 二 include 包含别的文件 例如 include xx pri 类似于c 的 include 三 平台宏 win32 macx unix linux g 等 分别对应于win
  • HDU--1864:最大报销额 DP求最大和(最大和有上限)

    1 题目源地址 http acm hdu edu cn showproblem php pid 1864 2 简要分析 这道题看起来不难 求最大报销额 想法是先找到符合要求的发票 然后求符合要求的发票的最大报销金额 但是 这道题的陷阱好几个
  • 【目标检测】3、SPPNet

    SPPNet Spatial Pyramid Pooling 空间金字塔池化 一般的CNN结构中 对输入大小要求固定 但在现实中通常会使用crop和warp来将大小统一 这样做会破坏图像的纵横比 何凯明提出了SPP 连接在最后一层卷积层 下
  • C++ 算法学习 之 sort

    这里写目录标题 sort函数 简单使用 通过上面的两个列子发现sort用的参数不一样为什么 进一步理解sort 那我们怎么进行自定义排序呢 力扣题目 c 官网手册 sort 参考于官网 sort函数 std sort 函数是C 标准库中提供
  • Python3.7+RobotFramework自动化测试框架环境搭建-重装

    Python3 7 RobotFramework自动化测试框架环境搭建 学习笔记 一 环境搭建 1 安装Python3 7 2 2 安装相关的库 request库 robotframework库 robotframework request
  • C++实现softmax函数(std::vector)

    参考博客 激活函数之softmax介绍及C 实现及其评论区 Lambda使用参考博客 C 11 Lambda表达式 函数功能 输入vector
  • CSS(三)

    目录 CSS三大特性 层叠性 继承性 优先级 层叠性 继承性 优先级 页面布局三大核心 盒子模型 浮动 定位 CSS盒子模型 网页布局过程 盒子模型组成 编辑 编辑 边框 border 内边距 padding 外边距 margin PS基本