第七章使用 CSS3 操作数据内容样式
A.表格
1.使用 css 定制表格
Terms:table,table-caption,table-row,table-row-group,table-header-group,table-footer-group
样式规则 | 说明 |
---|---|
table | 对应 table |
table-caption | 对应 caption |
table-row | 对表 tr |
table-row-group | 对应 tbody |
table-header-group | 对应 thead |
table-footer-group | 对应 tfoot |
html
<style>
.table {
display: table;
border: solid 1px #ddd;
}
.table nav {
display: table-caption;
text-align: center;
background: black;
color: white;
padding: 10px;
}
.table section:nth-of-type(1) {
font-weight: bold;
display: table-header-group;
background: #555;
color: white;
}
.table section:nth-of-type(2) {
display: table-row-group;
}
.table section:nth-of-type(3) {
display: table-footer-group;
background: #f3f3f3;
}
.table section ul {
display: table-row;
}
.table section ul li {
padding: 10px;
display: table-cell;
border: solid 1px #ddd;
}
</style>
<article class="table">
<nav>hd在线教程</nav>
<section>
<ul>
<li>标题</li>
<li>说明</li>
</ul>
</section>
<section>
<ul>
<li>hd</li>
<li>houdunren.com</li>
</ul>
<ul>
<li>开源系统</li>
<li>hdcms.com</li>
</ul>
</section>
<section>
<ul>
<li>不断更新视频</li>
<li>努力加油</li>
</ul>
</section>
</article>
2.表格标题与对齐处理
Terms:table,thead,tbody,tfoot,border=”1”,caption,caption-side,text-align,vertical-align
2.1 表格标题: 通过 caption-side
可以设置标题位置,值可以设置为 top | bootom
html
<!-- 表格标题 -->
<style>
table caption {
background: red;
color: #fff;
border: solid 3px #ddd;
caption-side: top;
}
table tr td {
height: 100px;
text-align: left;
vertical-align: center;
}
</style>
<table border="1">
<caption>
hd线上视频课程
</caption>
<tr>
<td>houdunren.com</td>
<td>hd</td>
</tr>
</table>
2.2 内容对齐:水平对齐使用 text-align 文本对齐规则,垂直对齐使用 vertical-align 处理
属性 | 说明 |
---|---|
top | 顶对齐 |
middle | 垂直居中 |
bottom | 底部对齐 |
html
<!-- 内容水平对齐 -->
<style>
table tr td {
height: 100px;
text-align: center;
}
</style>
html
<!-- 内容垂直对齐 -->
<style>
table tr td {
height: 100px;
vertical-align: bottom;
text-align: center;
}
</style>
3.表格颜色与背景定义
- 为表格设置颜色与普通标签相似,可以为 table | thead | tbody | caption | tfoot| tr| td 设置颜色样式
html
<style>
table tr {
color: white;
}
table tr:nth-child(odd) {
background: red;
}
table tr td:nth-child(even) {
background: #067db4;
}
</style>
html
<!-- 使用选择器设置表格隔行变色 -->
<style>
table thead tr {
background: #118d68;
color: #fff;
}
table tbody tr:nth-child(odd) {
background: #1bb385;
color: white;
}
</style>
4.细线表格与间距与空白单元格处理
Terms:border-collapse,border-spacing,empty-cells,
4.1 边框间距 border-spacing
html
<!-- 设置单元格间距,设置间距上下 10px ,左右 50px。 -->
<style>
table {
border-spacing: 50px 10px;
}
</style>
4.2 边框合并 border-collapse
html
<style>
table {
border-collapse: collapse;
}
</style>
4.3 隐藏单元格 empty-cells
html
<style>
table {
empty-cells: hide;
}
</style>
<table border="1">
<tr>
<td>在线教程</td>
<td>houdunren.com</td>
</tr>
<tr>
<td></td>
<td>hdcms.com</td>
</tr>
</table>
5.细线无边框表格样式
5.1 无边框表格
html
<style>
table {
border: none;
border-collapse: collapse;
}
table td {
border: none;
border-right: solid 1px #ddd;
border-bottom: solid 1px #ddd;
}
table tr:first-child td {
border-top: solid 1px #ddd;
}
table td:last-child {
border-right: none;
}
</style>
<table border="1">
<thead>
<tr>
<td>编号</td>
<td>标题</td>
<td>网址</td>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>在线社区</td>
<td>houdunren.com</td>
</tr>
<tr>
<td>2</td>
<td>开源系统</td>
<td>hdcms.com</td>
</tr>
</tbody>
</table>
6.数据表格设计
html
<!-- 可以为表格元素使用伪类控制样式,下例中使用 hover 伪类样式 -->
<style>
table,
td {
border: none;
font-size: 14px;
border-collapse: collapse;
}
table td {
border-top: solid 1px #ddd;
padding: 10px;
}
table tr:hover {
background: #ccc;
cursor: pointer;
}
</style>
<table border="1">
<thead>
<tr>
<td>编号</td>
<td>标题</td>
<td>网址</td>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>在线社区</td>
<td>houdunren.com</td>
</tr>
<tr>
<td>2</td>
<td>开源系统</td>
<td>hdcms.com</td>
</tr>
<tr>
<td>3</td>
<td>开发实战</td>
<td>houdunwang.com</td>
</tr>
</tbody>
</table>
B.列表
7.多种方式定义列表符号
Terms:ul,li,list-style-type,list-style-image
7.1 列表符号
值 | 描述 |
---|---|
none | 无标记。 |
disc | 默认。标记是实心圆。 |
circle | 标记是空心圆。 |
square | 标记是实心方块。 |
decimal | 标记是数字。 |
decimal-leading-zero | 0 开头的数字标记。(01, 02, 03, 等。) |
lower-roman | 小写罗马数字(i, ii, iii, iv, v, 等。) |
upper-roman | 大写罗马数字(I, II, III, IV, V, 等。) |
lower-alpha | 小写英文字母 The marker is lower-alpha (a, b, c, d, e, 等。) |
upper-alpha | 大写英文字母 The marker is upper-alpha (A, B, C, D, E, 等。) |
lower-greek | 小写希腊字母(alpha, beta, gamma, 等。) |
lower-latin | 小写拉丁字母(a, b, c, d, e, 等。) |
upper-latin | 大写拉丁字母(A, B, C, D, E, 等。) |
hebrew | 传统的希伯来编号方式 |
armenian | 传统的亚美尼亚编号方式 |
georgian | 传统的乔治亚编号方式(an, ban, gan, 等。) |
cjk-ideographic | 简单的表意数字 |
hiragana | 标记是:a, i, u, e, o, ka, ki, 等。(日文片假名) |
katakana | 标记是:A, I, U, E, O, KA, KI, 等。(日文片假名) |
hiragana-iroha | 标记是:i, ro, ha, ni, ho, he, to, 等。(日文片假名) |
katakana-iroha | 标记是:I, RO, HA, NI, HO, HE, TO, 等。(日文片假名) |
css
/* 隐藏列表符号 */
ul {
list-style-type: none;
}
css
/* 自定义列表样式 */
ul li {
/* list-style-image: url(xj-small.png);
list-style-image: radial-gradient(10px 10px, red, black); */
list-style-image: linear-gradient(45deg, red, black);
}
7.2 符号位置
- 控制符号显示在内容外面还是内部
选项 | 说明 |
---|---|
inside | 内部 |
outside | 外部 |
css
ul {
list-style-position: inside;
}
7.3 组合定义
css
ul {
list-style: circle inside;
}
8.多图背景控制列表符号
8.1 背景符号
css
ul li {
background: url(xj-small.png) no-repeat 0 6px;
background-size: 10px 10px;
list-style-position: inside;
list-style: none;
text-indent: 15px;
}
8.2 多图背景定义
html
<style>
ul {
list-style-type: none;
}
ul li {
background-image: url(xj-small.png), url(houdunren.jpg);
background-repeat: no-repeat, repeat;
background-size: 10px 10px, 100%;
background-position: 5px 7px, 0 0;
text-indent: 20px;
border-bottom: solid 1px #ddd;
margin-bottom: 10px;
padding-bottom: 5px;
}
</style>
C.追加内容
9.after 与 before 追加元素样式使用
9.1 基本使用
html
<!-- 使用伪类 ::before 向前添加内容,使用 ::after 向后面添加内容。 -->
<style>
a::after {
content: "(坚持努力)";
}
</style>
9.2 提取属性
html
<!-- 使用属性值添加内容,可以使用标准属性与自定义属性。 -->
<style>
a::after {
content: attr(href);
}
</style>
<a href="houdunren.com">hd</a>
html
<!-- 通过属性值添加标签提示 -->
<style>
a {
position: relative;
}
a:hover {
&::before {
content: "URL: " attr(data-url);
background: #555;
color: white;
position: absolute;
top: 20px;
padding: 3px 10px;
border-radius: 10px;
}
}
</style>
10.使用 after 与 before 制作绚丽的表单
html
<!-- 自定义表单 -->
<style>
body {
padding: 80px;
}
.field {
position: relative;
}
input {
border: none;
outline: none;
}
.field::after {
content: "";
background: linear-gradient(to right, white, red, green, blue, white);
height: 30px;
position: relative;
width: 100%;
height: 1px;
display: block;
left: 0px;
right: 0px;
}
.field:hover::before {
content: attr(data-placeholder);
position: absolute;
top: -20px;
left: 0px;
color: #555;
font-size: 12px;
}
</style>
<div class="field" data-placeholder="请输入少于100字的标题">
<input type="text" id="name" />
</div>