CSS基础知识(上)
1.创建结构化、语义丰富HTML
语义化标记是优秀HTML文档的基础。
语义化标记意味着在正确的地方使用正确的元素,从而得到有意义的文档。
有意义的文档可以确保尽可能多的人都能够使用。
1.1 ID和class属性
为元素添加ID和class属性不一定能给文档增加含义或结构。这两个属性只是一种让其他因素来操作与解析文档的通用手段,CSS也可以利用这一手段。我们可以设置这些属性的值,即为其起名字。
“名不正则言不顺”,起什么名字意味着它是什么,或者应该怎么使用它。
<ul class="product-list">
<li><a href="/product/1">Product 1</a></li>
<li><a href="/product/2">Product 2</a></li>
<li><a href="/product/3">Product 3</a></li>
</ul>
这里的product-list
就意味着它是商品列表。
给元素添加类名时,即使类名明确用于样式,也不要体现出其视觉效果。正确的做法是让类名表示组件的类型。
一个ID只能应用到页面中的一个元素。
1.2 结构化元素
HTML5新增乐乐一批结构化元素:
- section
- header
- footer
- nav
- article
- aside
- main
关于如何正确使用这些新元素,建议看看这个网站:http://html5doctor.com
在没有合适的语义元素的情况下,div
仍然是给内容分组的一个不错的选择。
有时候,我们会纯粹出于添加样式的目的而在文档中添加一个元素。
如果有更具语义的结构化元素,那么务必使用它们,需要添加样式时再给它们一个适当的类名。但是,如果你只需要一个无语义的元素作为额外的样式接入点,那就使用div
。
仅需添加样式的情况中,也可以使用span
。与div
不同,span
是文本级元素。
2.CSS选择符
有效且结构良好的文档是添加样式的基础。
类型选择符用于选择特定类型的元素,比如段落元素。
p {
color : black;
}
后代选择符用于选择某个或某组元素的后代。后代选择符的写法是在两个选择符之间添加空格。
blockquote p {
padding-left : 2em;
}
ID选择符
#intro {
font-weight : bold;
}
<p id="intro">Happy Birthday, Andy</p>
类选择符
.intro {
font-weight : bold;
}
<p class="intro">Happy Birthday, Andy</p>
2.1 子选择符与同辈选择符
子选择符只选择一个元素的直接后代,也就是子元素。
#nav > li {
background: url(img/folder.png) no-repeat left top;
padding-left: 20px;
}
<ul id="nav">
<li><a href="/home/">Home</a></li>
<li><a href="/services/">Services</a>
<ul>
<li><a href="/services/design/">Design</a></li>
<li><a href="/services/development/">Development</a></li>
<li><a href="/services/consultancy/">Consultancy</a></li>
</ul>
</li>
<li><a href="/contact/">Contact Us</a></li>
</ul>
使用相邻同辈选择符,就可以选择位于某个元素后面,并与该元素拥有共同父元素的元素。
h2 + p {
font-size: 1em;
font-weight: bold;
color: #777;
}
<h2>Peru Celebrates Guinea Pig festival</h2>
<p>The guinea pig festival in Peru is a one day event to ...</p>
<p>Guinea pigs can be fried, roasted or served in a casserole. </p>
>
和+
在这里被称为组合子(combinator)。
使用一般同辈组合子~
可以选择h2
元素后面的所有段落。
h2 ~ p {
font-size: 1em;
font-weight: bold;
color: #777;
}
通常情况下,浏览器会按照元素在页面中出现的先后次序给它们应用样式,浏览器不支持向前选择同辈元素。
2.2 通用选择符
通用选择符可以匹配任何元素。通用选择符使用星号*
表示。
* {
padding:0;
margin:0;
}
2.3 属性选择符
属性选择符基于元素是否有某个属性或者属性是否有某个值来选择元素。
input[type="submit"] {
cursor: pointer;
}
<input type="submit" />
有时候,我们关心的是属性值是否匹配某个模式,而非某个特定值。这时候,通过给属性选择符中的符号前面加上特殊字符,就可以表达出想要匹配的值的形式了。
a[href^="http:"] /* 匹配以某些字符开头的属性值 */
img[src$=".jpg"] /* 匹配以某些字符结尾的属性值 */
a[href*="/about/"] /* 匹配包含某些字符的属性值 */
a[rel~=next] /* 匹配以空格分隔的字符串中的属性值 */
a[lang|=en] /* 选择开头是指定值或指定值后连着一个短划线的情况 */
属性选择符参考:http://www.runoob.com/css/css-attribute-selectors.html
2.4 伪元素
伪元素是特殊的选择符,它不是通过元素来表示的。
::first-letter
→ 选择一段文本的第一个字符
::first-line
→ 选择一段文本的第一行
::before
→ 对应着内容开头的元素
::after
→ 对应着内容结尾的元素
伪元素参考:http://www.runoob.com/css/css-pseudo-elements.html
2.5 伪类选择符
伪类选择符以一个冒号开头,用于选择元素的特定状态或关系。
a:link {
color: blue;
}
a:visited {
color: green;
}
a:hover, a:focus {
color: red;
}
a:active {
color: purple;
}
<a href="#">百度</a>
:target
匹配的元素有一个ID属性,而且该属性的值出现在当前页面URL末尾的井号(#)后边。
:target
伪类选择符参考:http://www.runoob.com/try/try.php?filename=trycss3_target
/* 反选伪类 */
.comment:target:not(.comment-downvoted) {
background-color: #fffec4;
}
表单伪类根据用户与表单控件交互的方式,来反映表单控件的某种状态。
其他伪类:
tr:nth-child(odd)
tr:nth-child(even)
tr:nth-child(3n+4)
:nth-last-child(N)
:first-child → 选择第一个子元素
:last-child
:only-child
:only-of-type → 选择特定类型的唯一子元素
:nth-of-type(N)
:nth-last-of-type(N)
参考资料:
CSS基础知识(上)的更多相关文章
- CSS基础知识之float
前段时间写过一篇CSS基础知识之position,当时对float的理解不太准确,被慕课网多名读者指出(原文已修正,如有误导实在抱歉).现对float进行更深入的学习,在此把学习心得分享给大家. 浮动 ...
- (转)第一天 XHTML CSS基础知识 文章出处:标准之路(http://www.aa25.cn/div_css/902.shtml)
欢迎大家学习<十天学会web标准>,也就是我们常说的DIV+CSS.不过这里的DIV+CSS是一种错误的叫法,建议大家还是称之为web标准. 学习本系列教程需有一定html和css基础,也 ...
- CSS基础知识之position
最近在慕课网学习了 网页布局基础 和 固定层效果 ,都是由声音甜美的 婧享人生 老师所录制,视频详细讲解了CSS中position的用法,在此把学习笔记分享给大家. CSS定位机制 标准文档流(Nor ...
- 【CSS】 CSS基础知识 属性和选择
css基础知识 html的基本标签都是千篇一律的,为了能够个性化外观,就需要进行样式的调整,而css就是专门用来维护,管理样式的一种格式.在html中定义css有三种方法 1. 为标签添加style属 ...
- 〖前端开发〗HTML/CSS基础知识学习笔记
经过一天的学习,把慕课网的HTML/CSS基础知识学完了,笔记整理: 1. 文件结构: HTML文件的固定结构: <html> <head>...</head> & ...
- Web学习篇之---css基础知识(一)
css基础知识(一) 1.css样式: 载入css样式有下面四种: 1).外部样式 2).内部样式 3).行内样式 4).导入样式 <link href="layout.css&quo ...
- DIV+CSS专题:第一天 XHTML CSS基础知识
欢迎大家学习<十天学会web标准>,也就是我们常说的DIV+CSS.不过这里的DIV+CSS是一种错误的叫法,建议大家还是称之为web标准. 学习本系列教程需有一定html和css基础 ...
- HTML+CSS基础知识(2)选择器的使用、盒子模型的讲解、列表的使用
文章目录 1.CSS基础知识 2.css样式 2.1.代码: 2.2 测试结果 3.CSS的语法 3.1 代码 4.块元素和行内元素 4.1 代码 4.2 测试结果 5.常用的选择器 5.1 代码块 ...
- CSS基础知识筑基
01.CSS 简介 CSS 指层叠样式表 (Cascading Style Sheets),对HTML网页内容进行统一外观样式设计和管理,给网页进行各种装饰,让她变得美观,是HTML的化妆师.(Cas ...
- 前端开发:css基础知识之盒模型以及浮动布局。
前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西? 为什么这个浮动没有效果? 这个问题楼主已经回答了n遍.今天则是把 ...
随机推荐
- pytest框架的安装与使用
pytest框架的安装与使用 一,pytest了解 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高. ...
- 一张PDF了解JDK10 GC调优秘籍-附PDF下载
目录 简介 Java参数类型 Large Pages JIT调优 总结 简介 今天我们讲讲JDK10中的JVM GC调优参数,JDK10中JVM的参数总共有1957个,其中正式的参数有658个. 其实 ...
- c++运行程序 鼠标点击按钮 (c++)(windows)
简介 这是在黑漆漆的程序中,制造用户可点击的按钮,来决定程序下一步该作什么,的基本代码. 详解 头文件 <cstdio>和<windows.h> 结构体 //这不全别复制 st ...
- 定时器之Timer
Timer中的TimerTask就是一个线程,可以一直执行下去的.可以使用Timer类的cancel方法来结束.-------------------------------------------- ...
- Java常用API(ArrayList类)
Java常用API(ArrayList类) 我们为什么要使用ArrayList类? 为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所 ...
- 痞子衡嵌入式:SNVS Master Key仅在i.MXRT10xx Hab关闭时才能用于DCP加解密
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列中数据协处理器DCP使用SNVS Master Key加解密的注意事项. i.MXRT不仅仅是处理性能超强的MCU,也是 ...
- FileNotFoundError: [WinError 2] 系统找不到指定的文件。 解决方案
用Idle运行Python脚本的时候发现如下错误: Traceback (most recent call last): File "C:\Users\DangKai\Desktop\pyt ...
- Windows File Recovery - 微软官方文件恢复工具
假如你不小心误删除了文件或因各种意外情况丢失数据后,你可以通过 微软这款工具 这个工具来尝试恢复它们.WinFR 工具支持读取本机硬盘.移动硬盘.U 盘,或者连接相机.手机.使用读卡器来恢复 SD.T ...
- 程序员每日一乐:html动态烟花设计 3D
3D版烟花 效果图:file:///C:/Users/QianXin/Desktop/3D%E7%83%9F%E8%8A%B1.html 经过一天的的工作或者学习是否感到枯燥乏味?现在的你是否想找些乐 ...
- 云上自动化 vs 云上编排
1 摘要 本文介绍了为什么在一个好的公有云或私有云中必须要有一个编排系统来支持云上自动化,以及实现这个编排系统的困难和各家的努力.同时提供了一套实现编排系统的原型,它包括了理论分析及主体插件框架,还给 ...