学习HTML(十六)——CSS样式中的目标标签定位

在以往的介绍中,在CSS文件中的设置都是针对某一类标签的。这种设置应用在网页中是,只要是此类标签都要应用CSS文件中该类标签的设置。这其实是一种完全覆盖的定位。除了这种定位方式,CSS还提供了其他定位方式。
1)按嵌套关系定位
如下所以的代码,如果我们想设置最里面的p标签红色,最外层的蓝色,在第一层的p为黄色,可以在css文件中按照标签的嵌套关系,从外到里一次把标签名称写下来,用空格隔开(看上去是用空格隔开的几个标签名称,其实越是靠前的标签标示它的嵌套层越靠近body标签)。然后在花括号中设置具体的属性值。CSS文件的设置如下:
<body>
<div>
<div>
<p>Hello CSS </p>
</div>
</div>
<div>
<p>Hello CSS </p>
</div>
<p>Hello CSS </p>
</body>
CSS文件设置:
p
{
color:blue;
}
div p
{
color:orange;
}
 
div div p
{
color:red;
}
效果图:
注意,标签的嵌套关系分为两种:松散嵌套关系和严格嵌套关系。松散的嵌套关系是标签路径之间还可以夹杂其他标签。比如上面的例子中如果第一个div和它的子div之间还夹杂着一个其他标签,那这不影响div div p的嵌套关系。而严格的嵌套关系是指标签路径之间没有夹杂其他的标签,是严格的从左到右的嵌套关系,这种严格的嵌套关系还要用>号来来接,也就是div>div>p,这样松散的嵌套关系就不会应用这类样式设置。
2)通配符标签*
如果你有一些属性是想让所有的标签都设置指定的值。一种方式是在CSS文件中写出每个标签然后进行设置,另一种方式是采用通配符标签*,也就在CSS文件中建立一个标签名为*的设置。在花括号中设置需要的属性。这样所有的标签都会应用这些属性值。下面的代码和效果图。代码是在第一节的基础上添加的。
*
{
border:1px dashed #3a5fcd;
}
3)class与id
除了按照上述介绍的按照通配符和嵌套关系来进行标签定位,我们还可以赋予标签id或者class名称的方式来进行标签定位。对于一个标签,我们可以设置它的class名称或者id值,比如<p class="tmp"></p>或者<p id="tmp"></p>。下面说一下这两者的区别。
我们可以给多个相同的或者不同的标签设置相同的class值。这样相同的class值可以获取到相同的CSS文件的设置。在CSS文件中进行设置时,不需要填写标签名,而是一个点(.)后面跟着类名,例如.class的形式。下面是一个例子:
html文件:
<!DOCTYPE html>
 <html>
 <head>
 <link type="text/css" rel="stylesheet" href="stylesheet.css"/>
 <title>Result</title> 
 </head> 
 <body> 
 <h3 class="fancy">静夜思</h3>
 <p class="fancy">床前明月光</p>
 <p>疑是地上霜</p> 
 <p class="settings1">举头望明月</p> 
 <p class="settings2">低头思故乡</p> 
 </body> 
</html>
CSS文件:
.fancy
 {
 font-family:cursive;
 color:#0000CD; 
.settings1
 { 
 text-align:right;
 font-family:cursive;
 color:red; 
.settings2 
{
 text-align:left; 
 font-family:serif; 
 color:gray; 
p
 {
  text-align:center;
 }
效果图:
  与class可以多个标签使用相反,id值在网页代码中是唯一的,在一个网页的所有标签中,一个id值只对应一个标签。在CSS文件中进行设置时,不需要填写标签名,而是一个#后面跟着id值,例如#IDValue的形式。我们给出一个例子,代码就用上面的代码,只是把class改为id:
html文件:
<!DOCTYPE html>
 <html>
 <head>
 <link type="text/css" rel="stylesheet" href="stylesheet.css"/>
 <title>Result</title> 
 </head> 
 <body> 
 <h3 class="fancy">静夜思</h3>
 <p class="fancy">床前明月光</p>
 <p>疑是地上霜</p> 
 <p class="settings1">举头望明月</p> 
 <p class="settings2">低头思故乡</p> 
 </body> 
</html>
CSS文件:
#fancy
 {
 font-family:cursive;
 color:#0000CD; 
#settings1
 { 
 text-align:right;
 font-family:cursive;
 color:red; 
#settings2 
{
 text-align:left; 
 font-family:serif; 
 color:gray; 
p
 {
  text-align:center;
 }
效果图:
特别注意:
比如下面的代码:
<p>hello</p>
<p id="tmp">hellp</p>
CSS文件:
p{background-color:yellow;color:red} #tmp{color:blue}
上面的两个p标签,其中一个有id,另外一个没有,css文件中的设置并不是简单的把#tmp替代p设置,而是替代p中重复的设置,也就是说在#tmp中的p采用的color是blue,而它的background-color属性是取的p中的设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值