当前位置: 首页 > news >正文

【CSS】笔记3-三大样式

一、三大特性

1.层叠性

  • 相同选择器设置相同的样式,此时一个样式就会覆盖另一个冲突的样式。
  • 层叠性主要解决样式冲突的问题
  • 层叠性原则:
    • 样式冲突,遵循的原则是就近原则(离标签近的)

2.继承性

  • CSS中的继承:子标签会继承父标签里面的某些样式
  • 文本颜色和字号

子元素可以继承父元素的样式(text-,font-,line-这些开头的可以继承,以及color属性)

高度、盒子模型的内外边距就不会继承

***行高的继承性

body{
font:12px/1.5 Microsoft YaHei;
}

行高可以跟单位也可以不跟

如果子元素没有设置行高,则会继承父元素行高为1.5

此时子元素的行高是:当前子元素文字大小*1.5

body行高1.5这样写最大的优势就是里面子元素可以根据自己文字大小自动化调整行高

<!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>Document</title>
    <style>
        body {
            color: pink;
            font: 12px/1.5 'Microsoft YaHei'
        }

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

        /*li没有指定文字大小 则会继承父亲的文字大小 body12px所有li的文字大小问12px,当前li的行高就是12*1.5=18px*/
    </style>
</head>

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

</html>

3.优先级

  • 选择器相同,则执行层叠性
  • 选择器不同,则按权重

div {
color:pink!important
}

注意事项

  • 权重是有4子数字组成,但是不会有进位
  • 等级判断是从左到右,如果某一位数值相同,则判断下一位数值
  • 继承的权重是0,如果该原始没有直接选中,不管父亲元素权重多高,子元素得到的权重都是0。所以以后我们看标签到底执行哪个样式,就先看这个标签有没有直接被选出来
  • a链接口浏览器默认指定了一个颜色 蓝色有下划线

4.CSS权重叠加 

  • 权重叠加:如果是复合选择器,则会有权重的叠加,需要计算权重
<head>
<style>
     li {
        color:green;
     }
/* li 的权重是 0,0,0,1  */
     ul li{
        color :red;
     }
/* 复合选择器权重叠加,ul li权重 0,0,0,1 + 0,0,0,1 =0,0,0,2 */
.nav li{
    color:pink;
}
/*  .nav li 权重 0,0,1,0 + 0,0,0,1 = 0,0,1,1 */
<style>
</head>
<body>
    <ul  class="nav">
          <li>大猪蹄子</li>
          <li>大肘子</li>
          <li>猪尾巴</li>
      
    </ul>
</body>
  1. div ul li----------> 0,0,0,3
  2. .nav ul li -------------->0,0,1,2
  3. a:hover ---------------->0,0,1,1 /* 伪类选择器*/
  4. .nav a-------------------->0,0,1,1

小案例

<head> 
  <style>
        /*.nav li权重11*/
        .nav li {
            color: red;
        }

        /*需求把第一个小li颜色改为粉色加粗*/
        /*pink权重是10 .nav .pink权重是20*/
        .nav .pink {
            color: pink;
            font-weight: 700;
        }
    </style>
</head>

<body>
    <ul class="nav">
        <li class="pink">人生四大悲</li>
        <li>家里没宽带</li>
        <li>网速不够快</li>
        <li>手机没流量</li>
    </ul>
</body>

二、盒子模型

目标

能改准确阐述盒子模型4个组成部分

利用边框复合写法给元素添加边框

计算盒子实际大小

利用盒子模型布局模块案例

给盒子设置圆角边框

给盒子添加阴影

给文字添加阴影

1.盒子模型

页面布局要学习三大核心

  • 盒子模型
  • 浮动
  • 定位

页面布局步骤

1.先准备好相关的网页元素,网页元素基本都是盒子

2.利用CSS设置好盒子样式,然后摆放到相应位置

3.往盒子里面装内容

盒子模型的组成:

  • border(边框)
  • content(内容)
  • padding(内边距)
  • margin(外边距)

(1)边框(border)

  • CSS 边框属性允许你指定一个元素边框的样式和颜色

  • 边框由三部分组成:边框宽度(粗细) 边框样式 边框颜色

boder-width边框的粗细,一般情况都用px

border-style solid实线边框 dashed虚线 dotted点线

 简写:无顺序,通俗如下顺序

border : borde-width || border-style || border-color

boder:5px solid pink

边框分开写法

border-top:1px solid red 只设定上边框,其余同理

border-bottom下边框

左右一样的

(2)border-collapse表格细线边框

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

  • border-coppapse 表格的细线边框

border-collapse : collapse;

  • 表示相邻边框合并在一起
  • collapse 单词是合并的意思

table,td,th{

        boder:1px solid pink

}

(3)边框会影响盒子实际大小

边框会额外增加盒子的实际大小,因此我们有两种方案解决:

  1. 测量盒子大小的时候,不量边框
  2. 如果测量的时候包含了边框,则需要 width/height 减去边框宽度

(4)内边距padding

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

  • padding属性(简写属性)可以有一到四个值

 (5)padding影响盒子大小

给盒子指定padding之后,

1.内容和边框有了距离,添加了内边距

2.padding影响了盒子实际大小

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

解决方案:如果保证盒子和效果图大小保持一致,则让width、height 减去多出来的内边距大小

 新浪导航栏实例:
*1a标签转为行内块元素

*2padding指的左右内边距,撑开距离

<!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>Document</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>

 

相关文章:

  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • redis 为什么这么快,你真的知道吗?
  • 【湖仓一体化】存OR算之争?SPL 我都要
  • 学习偏态分布的相关知识和原理的4篇论文推荐
  • 【 java 面向对象】包装类的使用
  • 【Leetcode刷题】搜索插入位置
  • 面向对象编程的Python实例教程-区间的插入
  • 计算机组成原理百道必考大总结(上)
  • W10安装Cuda和cuDNN环境
  • 手写一个泛型双向链表
  • 【Python 无损放大图片】——支持JPG/PNG 可将图片无损放大上万像素
  • 计划任务备份
  • JAVA:TCP通信
  • Qt5.12的快捷安装
  • leetcode 409 Longest Palindrome 最长回文串(简单)
  • python3.6+scrapy+mysql 爬虫实战
  • const let
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • express.js的介绍及使用
  • github从入门到放弃(1)
  • Java 23种设计模式 之单例模式 7种实现方式
  • JAVA 学习IO流
  • Java小白进阶笔记(3)-初级面向对象
  • maven工程打包jar以及java jar命令的classpath使用
  • node-glob通配符
  • SOFAMosn配置模型
  • Web设计流程优化:网页效果图设计新思路
  • 动态规划入门(以爬楼梯为例)
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 突破自己的技术思维
  • 微信支付JSAPI,实测!终极方案
  • 我的业余项目总结
  • 栈实现走出迷宫(C++)
  • 自定义函数
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ionic异常记录
  • 数据可视化之下发图实践
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (04)odoo视图操作
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)ssm高校实验室 毕业设计 800008
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)编辑寄语:因为爱心,所以美丽
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .naturalWidth 和naturalHeight属性,
  • .NET Micro Framework初体验
  • .Net 代码性能 - (1)
  • .net 生成二级域名
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .net开发时的诡异问题,button的onclick事件无效
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • @Documented注解的作用