同步操作将从 infraboard/go-course 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
前面部分我们知道可以通过直接指定style属性来配置 DOM元素的样式, 比如:
<p style="color:red;font-size:20px;">这边显示该章节的内容……</p>
如果一个页面上 有多个元素都是用了这个样式, 那我们该怎么办?
这种时候我们就需要将样式独立出来, 单独写到一个保存在外部的 .css 文件中, 这就形成了css
我们来看一个简单的例子: 对所有的p标签 使用下面定义的样式
/* 这是个注释 */
p {
color: red;
}
我们可以看到css的语法由2个部分组成:
;
分开注释是用来解释你的代码,并且可以随意编辑它,浏览器会忽略它。
CSS注释以 /* 开始, 以 */ 结束, 比如上面
详情请参考: CSS 选择器
基础选择器有3种:
以标签名开头,选择所有div元素, 比如前面的p标签选择器就是这种
比如下面是所有h1标签 都显示为红色
h1 {
color: red;
}
给标签取class名,以点(.)加class名开头,选择所有该class名的元素
<h1 class="f12">基础标签</h1>
<style scoped>
.f12 {
font-size: 12px;
}
</style>
这是最常用的一种选择器
给标签取id名,以#加id名开头,具有唯一性
<h2><a id="C4">章节 4</a></h2>
<style scoped>
#C4 {
color: blue;
}
</style>
我们也可以组合使用, 一次选择多个元素,比如 h1, .f12,#C4 都选中, 语法: 以,分隔多个选中的元素
<style scoped>
h1,.f12,#C4 {
color: blue;
}
</style>
既然有多选,那就有全选, 语法: *
<style scoped>
* {
color: blue;
}
</style>
如果我们直接选择元素的话,可能会很多,并不能精确选中我们需要的元素, 因此我们就可以引入层级关系来选择, 比如 div元素下的p标签,而不是顶层p标签
总共有4种层级关系选择器:
用于已知父元素, 选择子元素, 具体语法: 以>隔开父子级元素,(模块名>模块名,修饰>前模块内的子模块)
比如列表下面的所有元素,我都把字体加粗
<ul id="list_menu" class="ul_class">
<li id="coffee">Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
<style scoped>
ul>li {
font-weight: 600;
}
</style>
子选择其,只能选择其当前层的七子元素, 如果 不是就无法选中, 比如
<ul id="list_menu" class="ul_class">
<li id="coffee">Coffee</li>
<li>Tea</li>
<li>Milk</li>
<div>
<li>In Div</li>
</div>
</ul>
那如果才能选择该元素下的所有li元素喃? 答案是: 包含选择器
包含选择器 可以选择父元素下的 包含该标签的所有元素, 语法是: 父元素 子元素
<ul id="list_menu" class="ul_class">
<li id="coffee">Coffee</li>
<li>Tea</li>
<li>Milk</li>
<div>
<li>In Div</li>
</div>
</ul>
<style scoped>
ul li {
font-weight: 600;
}
</style>
如果你需要选择从一层级的兄弟元素, 比如 #coffee同层的li元素, 语法: 同层元素~需要选中的同层元素
<ul id="list_menu" class="ul_class">
<li id="coffee">Coffee</li>
<li>Tea</li>
<li>Milk</li>
<div>
<li>In Div</li>
</div>
</ul>
<style scoped>
#coffee~li {
font-weight: 600;
}
</style>
同理, 只选择相邻的,而不是同层所有的
<ul id="list_menu" class="ul_class">
<li id="coffee">Coffee</li>
<li>Tea</li>
<li>Milk</li>
<div>
<li>In Div</li>
</div>
</ul>
<style scoped>
#coffee+li {
font-weight: 600;
}
</style>
元素会有多属性, 我们可以根据元素的属性来选择元素, 比如下面的input框
<form action="demo_form.php">
<input type="submit" value="提交">
</form>
<style scoped>
[type=submit] {
font-size: 22px;
}
</style>
当我们选中一堆元素后, 如果我们对其中部分元素 进行选择 就可以使用伪类选择器
语法如下:
选择的元素:函数方法
<ul id="list_menu" class="ul_class">
<li id="coffee">Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
<style scoped>
ul>li:first-child {
font-weight: 600;
}
</style>
所有CSS伪类/元素请参考: CSS伪类
这种是在标签内直接写的,style="attr:value;..."
<el-table
:data="tableData"
style="width: 100%">
...
</el-table>
通过style标签定义的样式
<style scoped>
ul>li:first-child {
font-weight: 600;
}
</style>
当样式需要被应用到很多页面的时候,外部样式表将是理想的选择。使用外部样式表,你就可以通过更改一个文件来改变整个站点的外观
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
我们在布局或者设置字体大小的时候经常看到: 22px;, px其实是css里面长度单位
绝对长度
相对长度
请参考: CSS 颜色
这里主要介绍下用于布局的常用属性
<div style="height: 220px;width:440px">
<p>我们的内容</p>
</div>
<div style="height: 220px;width:440px">
<p style="margin-top:22px;">我们的内容</p>
</div>
<div>
<li style="display: inline;">Tea</li>
<li style="display: inline;">Milk</li>
</div>
<div>
<span style="display: block;">span1</span>
<span style="display: block;">span2</span>
</div>
overflow 属性可以控制内容溢出元素框时在对应的元素区间内添加滚动条
<div id="overflowTest">
<p>这里的文本内容是可以滚动的,滚动条方向是垂直方向。</p>
<p>这里的文本内容是可以滚动的,滚动条方向是垂直方向。</p>
<p>这里的文本内容是可以滚动的,滚动条方向是垂直方向。</p>
<p>这里的文本内容是可以滚动的,滚动条方向是垂直方向。</p>
<p>这里的文本内容是可以滚动的,滚动条方向是垂直方向。</p>
<p>这里的文本内容是可以滚动的,滚动条方向是垂直方向。</p>
</div>
<style scoped>
#overflowTest {
background: #4CAF50;
color: white;
padding: 15px;
width: 80%;
height: 100px;
overflow: scroll;
border: 1px solid rgb(150, 18, 18);
}
</style>
控制元素左移还是右移
元素浮动之后,周围的元素会重新排列,为了避免这种情况,使用 clear 属性
<div>
<span style="display: block;">span1</span>
<span style="display: block;">span2</span>
</div>
<div id="overflowTest" style="clear:both">
</div>
我们以常见的剧中为例:
<div >
<p>我是垂直居中的。</p>
</div>
如果仅仅是为了文本在元素内居中对齐,可以使用 text-align: center
设置行高到div 就整体剧中了
相信我, 你CSS是写不出好看的样式的, 看看下面这些工具吧
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。