21.2 CSS 三大特性与页面布局

image-20230822200700134

1. 开发者工具修改样式

使用开发者工具修改样式, 操作步骤如下:
* 1. 打开开发者工具: 在浏览器中右键点击页面, 然后选择'检查'或者使用快捷键(一般是 F12 或者 Ctrl+Shift+I)来打开开发者工具.* 2. 打开样式编辑器: 在开发者工具中, 找到选项卡或面板, 一般是'Elements'或者'Elements'选项卡, 然后查找样式编辑器按钮, 点击它来打开样式编辑器.* 3. 修改样式: 在样式编辑器中, 可以找到并选择你想修改的元素, 在右侧的面板中你可以修改该元素的样式.可以修改元素的背景颜色, 字体样式, 边框, 内边距等等, 只需在样式规则中修改相关属性即可.* 4. 预览修改: 在修改样式的过程中, 开发者工具会实时预览你的修改效果. 可以看到元素在页面上的变化.如果需要, 还可以在浏览器调整窗口大小或者模拟设备来查看页面在不同屏幕上的效果.* 5. 应用修改: 一旦得到满意的修改, 可以将修改后的样式应用到页面上.可以直接在开发者工具中编辑页面的样式, 或者将修改后的样式复制到你的代码中.
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Developer Mode</title><style>p {font-size: 10px;color: red;}</style>
</head>
<body>
<h1>标题</h1>
<p>段落一</p>
<p>段落二</p>
</body>
</html>

2023-08-17_00019

2. CSS 三大特性

CSS具有三个重要的特性, 分别是:
* 1. 层叠性(Cascading): 相同选择器设置相同的样式会覆盖另一种冲突样式.层叠性的特点:1. 给同一个标签设置不同的样式, 样式会层叠叠加, 共同作用在标签上.2. 给同一个标签设置不同的样式遵循就近原则, 哪个样式离结构近, 就执行哪个样式.注意事项: 当样式冲突时, 只有当选择器优先级相同时, 才能通过层叠性判断结果.* 2. 继承性(Inheritance): 某些样式属性可以从父元素传递到其子元素.当父元素应用了某个样式属性时, 其子元素将默认继承这个属性的值, 无需在子元素中重复定义.* 3. 优先级(Specificity): 当多个选择器都能匹配同一个元素时, 需要根据优先级规则来确定最终应用的样式.通常, 选择器的具体性越高, 其优先级越高. 选择器的具体性由选择器的类型, 选择器的数量以及选择器的权重决定.这三个特性共同组成了CSS强大的样式控制机制.
使用层叠性, 继承性和优先级, 可以准确地控制网页元素的显示样式, 实现丰富多样的布局和设计效果.

2.1 层叠性

给同一个标签设置不同的样式, 样式会层叠叠加, 共同作用在标签上.
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Cascading</title><style>p {color: red;}p {color: aqua;}</style>
</head>
<body>
<p>Hello, World!</p>
</body>
</html>

2023-08-22_00004

给同一个标签设置不同的样式遵循就近原则, 哪个样式离结构近, 就执行哪个样式(程序至上往下运行).
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Cascading2</title><style>p {color: red;}p {color: aqua;font-size: 14px;}</style>
</head>
<body>
<p>Hello, World!</p>
</body>
</html>

2023-08-22_00006

2.2 继承性

继承性: 子元素可以继承其父元素的某些样式属性.以下是关于继承性的一些要点:
* 1. 哪些属性可以继承: 只有部分属性是可继承的.例如, color(文字颜色), font-family(字体系列), font-size(字体大小), line-height(行高).这意味着如果父元素设置了这些属性, 子元素将会继承并应用相同的属性值.* 2. 哪些属性不可继承: 并非所有属性都具有继承性.例如, background(背景), height(高度), border(边框), margin(边距), padding(内边距)等属性不会被子元素继承.* 3. 特殊的继承性规则: 尽管大部分可继承属性可以在父元素和其后代元素之间传递, 但有一些属性具有特殊的继承规则.例如, 链接'<a>'标签的文本颜色和文本修饰(如下划线)不会完全继承其父元素的设置,标题标签'<h1> - <h6>'的字体大小也不会完全继承其父元素的设置.* 4. 继承的优先级较低: 如果子元素直接设置了某个属性, 而父元素设置了相同的属性, 子元素会使用自己直接设置的值, 而不是继承父元素的值.直接设置的样式会覆盖继承而来的样式.使用继承性可以方便地应用样式到多个元素, 特别是针对文字和字体样式.
但在某些情况下, 可能需要小心处理继承, 以避免意外的样式传递. 
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Inheritance</title><style>div {color: red; /* 文字颜色: 红色 */font-size: 20px; /* 文字大小: 20像素 */background: grey; /* 背景颜色: 灰色 */text-decoration: none; /* 取消下划线 a便签不会继承*/}</style>
</head>
<body>
<div><h1>一级标签</h1>
</div>
<div><p>段落一</p>
</div><div><ul><li><p>段落二</p></li></ul>
</div><div><a href="">链接</a>
</div></body>
</html>
上例中, h1标签继承了div标签的文字颜色属性, 背景颜色, 取消文字的下划线, 没有继承文字大小的属性.

2023-08-22_00007

上例中, a标签继承了div标签的文字大小, 背景颜色,  取消文字的下划线, 没有继承文字颜色属性.

2023-08-22_00008

2.3 优先级

当多个选择器都能匹配同一个元素时, 需要根据优先级规则来确定最终应用的样式.CSS会按照如下顺序来计算优先级:
* 1. 内联样式(具有最高优先级): 使用'style'属性直接在元素上定义的样式具有最高优先级, 特定性值为1000.
* 2. ID选择器: 具有ID选择器的样式具有比其他选择器更高的优先级, 特定性值为100.
* 3. 类选择器: 属性选择器和伪类选择器: 这些选择器的特定性值为10.
* 4. 元素选择器和伪元素选择器: 这些选择器的特定性值为1.
* 5. 通用选择器和组合选择器: 这些选择器的特定性值为0.
* 6. 属性值末尾添加!important: 提升优先级为最高.* 特定性值相等的情况下, 后面出现的规则会覆盖先前的规则, 因为它们在样式表中出现得更晚.
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Specificity</title><style>p {color: red; /* 特定性值为1的元素选择器 */}#paragraph {color: blue; /* 特定性值为100的ID选择器 */}.red-text {color: green; /* 特定性值为10的类选择器 */}body p {color: purple; /* 特定性值为11的组合选择器: 1个元素选择器 + 1个元素选择器 */}</style>
</head>
<body>
<p id="paragraph" class="red-text">Hello, World!</p>
</body>
</html>

2023-08-22_00009

属性值中末尾添加!important提升属性优先级.
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>important</title><style>* {color: aqua !important;font-size: 10px;}p {color: red;}</style>
</head>
<body>
<ul><li><p>Hello, world!</p></li>
</ul>
</body>
</html>

2023-08-22_00010

3. 页面布局

div标签:  是一个容器级标签, 一般用于配合css完成网页的基本布局. 特点: 独占一行.
span标签: 是一个文本级标签, 一般用于配合css完成网页中的局部信息. 
快捷嵌套标签: div.box$*2+tab; 
<div class="box1"><tab></tab>
</div>
<div class="box2"><tab></tab>
</div>$: 自动生成数字.
*: 后面的数字表示生成的标签数量, *2, 生成两个标签.
>: 表示生成子表情.

3.1 div页面布局

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>div</title><style>.header { /*头部区域*/height: 100px;width: 1900px;background: red;}.content { /*中部区域*/height: 750px;width: 1900px;background: aqua;}.footer { /*页尾*/height: 100px;width: 1900px;background: blue;}.logo { /*头部logo*/height: 50px;width: 200px;background: #000;}</style>
</head>
<body>
<div class="header">  <!--头部--><div class="logo"></div> <!--头部中设置logo的布局-->
</div>
<div class="content"></div>  <!--中部-->
<div class="footer"></div>  <!--尾部-->
</body>
</html>

2023-08-22_00011

3.2 span局部更改样式

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>span标签</title><style>span {color: red;}</style>
</head>
<body><p>今天天气 <span></span><span>18°</span></p>
</body>
</html>

image-20230822132213266

3.3 结构错误

文本级标签嵌套容器级标签会发生结构错误.
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Error examples</title>
</head>
<body>
<p>段落1<h1>标题</h1>
</p>
</body>
</html>
可以正常显示, 但是层级结构改变了了.

2023-08-22_00013

4. 标签分类

HTML将标签分为: '容器级标签''文本级标签'.容器级标签是可以包含其他标签的标签, 它们用于创建网页的结构和布局.
一些常见的容器级标签有div, h1-h6, ul, ol和li等.
例如, div标签可以用来创建一个容器, 里面可以包含其他任意的标签.文本级标签用于处理文本内容, 它们一般只能包含文本, 超链接或图片标签.
一些常见的文本级标签包括span, p, em, ins, del等.
例如, p标签用于创建段落, 里面可以包含文字, 也可以包含其他文本级标签或超链接, 图片标签.通过合理使用容器级标签和文本级标签, 可以实现网页的结构, 样式和内容的显示.
CSS将标签分为: '块级元素', '行内元素''行内块元素'.块级元素通常是容器级标签, 它们独占一行, 默认宽度与父元素相同.
如果没有设置宽度, 块级元素会自动填充父元素的宽度.
块级元素的高度默认是内容的高度, 但可以通过设置宽高来修改显示效果.行内元素通常是文本级标签(除了p标签), 它们不独占一行.
行内元素的高度默认是内容的高度, 无法设置宽度, 默认与内容一样宽.行内块元素既可以设置宽高, 也不独占一行.
例如, img标签就是行内块元素, 可以设置宽高.通过使用不同类型的元素, 可以对页面的布局和样式进行灵活的控制.

4.1 块级元素

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Block level elements</title>
</head>
<body>
<!--独占一行-->
<div>div标签</div>
<h1>h标题</h1>
<p>p标签</p>
<ul><li>ul>li标题标签</li>
</ul>
</body>
</html>

image-20230822141027288

4.2 行内元素

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Inline element</title>
</head>
<body>
<!--不独占一行-->
<ins>aaa</ins>
<del>bbb</del>
<em>ccc</em>
<a href="#">网址</a>
</body>
</html>

image-20230822141410899

4.3 行内块级元素

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Block level elements within rows</title>
</head>
<body>
<img src="image/img.png" alt="图片"> 二次元少女
</body>
</html>

image-20230822141810286

5. display显示模式

display属性: 控制元素的显示模式的.常用属性值:
- inline: 将元素显示为行内元素, 不会独占一行, 宽度由内容决定, 不能设置宽度和高度.
- block: 将元素显示为块级元素, 独占一行, 宽度默认为父元素的宽度, 可以设置宽度和高度.
- inline-block: 将元素显示为行内块元素, 不会独占一行, 可以设置宽度和高度.
- none: 将元素隐藏, 不会在前端页面展示, 也不占用位置, 但元素仍然存在于文档中.
通过使用display属性和对应的属性值, 可以调整元素的显示模式和布局.下面是一些用来快速设置常见属性值的快捷键:
- d+tab: display:block;
- h100+tab: height:100px;
- w100+tab: width:100px;

5.1 块级元素转行内元素

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>display 1</title><style>/* 将元素显示为行内元素, 不会独占一行, 宽度由内容决定, 不能设置宽度和高度. */div {display: inline;height: 100px; /*失效*/width: 100px; /*失效*/background: red;}</style>
</head>
<body>
<div>div标签1</div>
<div>div标签2</div>
</body>
</html>

image-20230822142248051

display:inline属性防止高度产生影响.

5.2 行级元素转块级元素

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>display 2</title><style>/* 将元素显示为块级元素, 独占一行, 宽度默认为父元素的宽度, 可以设置宽度和高度. */span {display: block;width: 100px; /*可以设置宽高*/height: 100px;background: red;}</style>
</head>
<body>
<span>span标签1</span>
<span>span标签2</span>
</body>
</html>

image-20230822143005002

5.3 转为行内块级标签

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>display 3</title><style>/* 将元素显示为行内块元素, 不会独占一行, 可以设置宽度和高度. */div, span {display: inline-block; /*可以设置宽高*/height: 100px;width: 100px;background: red;}</style>
</head>
<body>
<div>div标签</div>
<span>span标签</span>
</body>
</html>

image-20230822143142867

6. visibility隐藏标签

visibility属性: 控制元素的可见性.常用属性值:
- visible: 元素可见(默认值).
- hidden: 元素不可见, 但仍保留其空间.
- collapse: 仅用于表格元素。行或列被移除,单元格不再占据空间。
- initial: 将可见性设置为默认值.
- inherit: 继承父元素的可见性.
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>visibility</title><style>.c1 {display: none;  /* 隐藏标签, 标签不占位置*/}.c3 {visibility: hidden;  /*隐藏标签, 标签占用位置*/}</style></head><body><div class="c1">d1</div><div>d2</div><div class="c3">d3</div><div>d4</div>
</body>
</html>

image-20230822143749268

7. 页面布局练习

使用代码实现下面的页面(相似即可).

2023-08-22_00028

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>百度首页</title><style>body { /*页面的文字大小 颜色*/font-size: 18px;color: #666;}div { /*所有的div标签居中*/text-align: center;}.header { /*头部页面高300px*/height: 300px;}.content { /*中间的页面高300px*/height: 300px;}.footer { /*尾部页面高300px*/height: 300px;}.logo { /*设置logo的大小*/height: 250px;width: 500px;}.location { /*定位图片大小*/height: 15px;width: 20px;}.logoH {height: 250px;}input[type=text] { /*输入框*/width: 400px;height: 30px;}input[type=submit] { /*搜索按钮*/width: 100px;height: 30px;}.bd {height: 60px;}.bk {height: 170px;}.footerH {height: 60px;}</style>
</head>
<body>
<!--头部-->
<div class="header"><!--logo--><div class="logoH"><img src="image/logo.png" alt="" class="logo"></div><!--导航条--><div><a href="#">新 闻</a><strong>网 页</strong><a href="#">贴 吧</a><a href="#">知 道</a><a href="#">音 乐</a><a href="#">图 片</a><a href="#">视 频</a><a href="#">地 图</a></div></div><!--中部-->
<div class="content"><!--搜索栏--><div class="bd"><form action=""><input type="text"><input type="submit" value="百度一下"></form></div><!--链接地址--><div class="bk"><a href="">百科</a><a href="">hao123</a>|<a href="">更多>></a></div><!--广告推广--><div><img src="image/location.png" alt="" class="location"><a href="#">百度地图带你吃喝玩乐, 全心全意为人民服务</a></div>
</div><!--尾部-->
<div class="footer"><!--推广--><div class="footerH"><a href="#">把百度设为首页</a><a href="#">安装百度卫士</a></div><!--关于百度--><div class="footerH"><a href="#">加入百度推广</a>|<a href="#">搜索风云榜</a>|<a href="#">关于百度</a>|<a href="#">About Baidu</a></div><!--版本--><div class="footerH">©2016 Baidu 使用百度前必读 京ICP证666号</div>
</div>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【仿写框架之仿写Tomact】一、详解Tomcat的工作流程

文章目录 1、启动阶段2、监听阶段&#xff1a;3、请求处理阶段&#xff1a;4、发送请求处理后的响应 当涉及到Java Web应用程序的部署和运行&#xff0c;Apache Tomcat无疑是一个备受欢迎的选择。Tomcat作为一个开源的、轻量级的Java Servlet容器和JavaServer Pages (JSP) 容器…

[保研/考研机试] KY124 二叉搜索树 浙江大学复试上机题 C++实现

题目链接&#xff1a; 二叉搜索树_牛客题霸_牛客网判断两序列是否为同一二叉搜索树序列。题目来自【牛客题霸】https://www.nowcoder.com/share/jump/437195121692722892652 描述 判断两序列是否为同一二叉搜索树序列 输入描述&#xff1a; 开始一个数n&#xff0c;(1<…

Sectigo EV代码签名申请步骤

一、EV代码签名申请前提 1、单位成立时间不低于&#xff1a;3个月 2、单位工商及企查查可查 3、单位经营正常 4、注册地址真实存在&#xff0c;禁止使用集中注册地址 5、企查查登记电话和邮箱&#xff0c;确定查询结果的电话可以接听、邮箱可以接收邮件&#xff0c;如果信…

行业追踪,2023-08-22

自动复盘 2023-08-22 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

v8引擎编译全过程

环境vs2019 cmd 命令行需要设置成为代理模式 set http_proxyhttp://127.0.0.1:10809 set https_proxyhttp://127.0.0.1:10809 这个必须带上&#xff0c;不然报错&#xff0c;告诉编译器win系统的模式 set DEPOT_TOOLS_WIN_TOOLCHAIN0 源码 GitHub: GitHub - v8/v8: The…

SpringBoot复习:(53)TransactionInterceptor是在哪里配置的?

我们知道SpringBoot的事务(Transactional)最终是通过TransactionInterceptor的invoke方法调用invokeWithinTransaction方法来开启事务控制的。 TransactionInterceptor bean在哪里配置的呢&#xff1f;在ProxyTransactionManagementConfiguration: 可以看到这里创建了一个Tra…

SpringBoot 跨域问题和解决方法

Spring Boot 是一种用于构建独立的、生产级别的Java应用程序的框架。在开发Web应用程序时&#xff0c;经常会遇到跨域资源共享&#xff08;CORS&#xff09;问题。本文将详细介绍Spring Boot中的跨域问题以及相应的解决方法。 目录 什么是跨域&#xff1f;1. 使用Spring Boot…

常见前端面试之VUE面试题汇总二

4. slot 是什么&#xff1f;有什么作用&#xff1f;原理是什么&#xff1f; slot 又名插槽&#xff0c;是 Vue 的内容分发机制&#xff0c;组件内部的模板引擎使用 slot 元素作为承载分发内容的出口。插槽 slot 是子组件的一个模板 标签元素&#xff0c;而这一个标签元素是否显…

分类预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机多输入分类预测

分类预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机多输入分类预测 目录 分类预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.分类预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机多输入分…

LLaMA-7B微调记录

Alpaca&#xff08;https://github.com/tatsu-lab/stanford_alpaca&#xff09;在70亿参数的LLaMA-7B上进行微调&#xff0c;通过52k指令数据&#xff08;https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json&#xff09;&#xff0c;在8个80GB A100上训…

【仿写tomcat】一、tomcat工作流程

仿写tomcat 简介tomcat简介流程分析tomcat是怎么和访问者交互的&#xff1f;流程图 简介 作者前不久刚仿写了一个简易的tomcat&#xff0c;在此分享给各位&#xff0c;此篇为对tomcat的简介和流程分析&#xff0c;具体仿写内容后续会贴在这里 扫描java文件&#xff0c;获取带…

常量变量习题答案

基础题目: 第一题 按步骤编写代码&#xff0c;效果如图所示&#xff1a; 编写步骤&#xff1a; 定义类 Test1定义 main方法控制台输出5行字符串类型常量值控制台输出5行字符类型常量值 参考答案&#xff1a; public class Test1 {public static void main(String[] args) {/…

TheGem主题 - 创意多用途和高性能WooCommerce WordPress主题/网站

TheGem主题概述 – 适合所有人的TheGem 作为设计元素、样式和功能的终极 Web 构建工具箱而设计和开发&#xff0c;TheGem主题将帮助您在几分钟内构建一个令人印象深刻的高性能网站&#xff0c;而无需触及一行代码。不要在编码上浪费时间&#xff0c;探索你的创造力&#xff01…

【Visual Studio】生成.i文件

环境 VS版本&#xff1a;VS2013 问题 如何生成.i预编译文件&#xff1f; 步骤 1、打开VS项目属性&#xff0c;打开C/C\预处理器页面&#xff0c;【预处理到文件】选择是&#xff0c;开启。 2、生成文件如下。 3、正常编译需要关闭此选项。

Azure VM上意外禁用NIC如何还原恢复

创建一个windows虚拟机&#xff0c;并远程连接管理员的方式打开powershell 首先查看虚拟网卡&#xff0c;netsh interface show interface 然后禁用虚拟网卡 ,netsh interface set interface Ethernet disable 去Azure虚拟机控制台&#xff0c;打开串行控制台 控制台中键入cmd,…

JAVA开发环境接口swagger-ui使用总结

一、前言 swagger-ui是java开发中生产api说明文档的插件&#xff0c;这是后端工程师和前端工程师联调接口的桥梁。生成的文档就减少了很多没必要的沟通提高开发和测试效率。 二、 swagger-ui的使用 1、引入maven依赖 <dependency><groupId>io.springfox</grou…

开源语音聊天软件Mumble

网友 大气 告诉我&#xff0c;Openblocks在国内还有个版本叫 码匠&#xff0c;更贴合国内软件开发的需求&#xff0c;如接入了国内常用的身份认证&#xff0c;接入了国内的数据库和云服务&#xff0c;也对小程序、企微 sdk 等场景做了适配。 在 https://majiang.co/docs/docke…

ubuntu 搜狗输入法安装 和 无法输入中文

一、下载搜狗输入法Linux版本。 搜狗输入法linux-首页 二、安装fcitx输入框架&#xff0c;及相关的依赖库 sudo apt install fcitx-bin sudo apt-get install fcitx-table sudo apt --fix-broken install 三、安装搜狗输入法 sudo dpkg -i sougou....deb 四、通过 设置&…

NPM 管理组织成员

目录 1、向组织添加成员 1.1 邀请成员加入您的组织 1.2 撤销组织邀请 2、接收或拒接组织邀请 2.1 接收组织邀请 2.2 拒绝组织邀请 3、组织角色和权限 4、管理组织权限 5、从组织中删除成员 1、向组织添加成员 作为组织所有者&#xff0c;您可以将其他npm用户添加到…