您现在的位置: 365建站网 > 365文章 > CSS布局探密03

CSS布局探密03

文章来源:365jz.com     点击数:353    更新时间:2009-09-14 10:36   参与评论

下面是一段普通的代码:
css: 

.box{ 
  border
:1px solid #ccc; 
  font-size
:12px; 
  background
:#F1F1F1; 
  padding
:10px; 
}

html:

<div class="box">this is  a gray box</div>

 

但是这个时候需求增加了,在页面中不仅要有一个灰色的盒子可能还有蓝色的盒子,可能还有绿色.

通常我们会想到:用继承嘛。好我们就做如下更改:

css:

.box-gray, 
.box-green
{ 
  border
:1px solid #ccc; 
  font-size
:12px; 
  padding
:10px; 
} 
.box-gray
{background:#F1F1F1} 
.box-green
{background:#66FF66}

html:

<div class="box-gray">this is  a gray box</div> 
<div class="box-green">this is a green box</div>

 

但是这个时候需求又有变化了,根与应用的不同,盒子中有些要用到12号字,有些要用到14号字,有些要变局10px有些要20px,估计这个时候你就要头大了,如果要用继承,css代码就会变得异常的复杂,那我们就来试验一下用组合的方式看能不能解决。
css:

.fs-12{font-size:12px} 
.fs-14
{font-size:14px} 
.pd-10
{padding:10px} 
.pd-20
{padding:20px} 
  
.box
{border:1px solid #ccc;} 

.box.gray
{background:#f1f1f1} 
.box.green
{background:#66ff66}

Html

<div class="box gray fs-12 pd-20">this a gray fontsize12px padding20px box</div> 
<div class="box green fs-14 pd-10">this a gray fontsize14px padding10px box</div> 

 

虽然在class上组合了好几个类,但是代码和逻辑都非常清晰,而且非常容易维护,随意组合随意扩展。从上面可以看到“组合”的方式是不言而喻的,但是也不是十全十美的,再拆分组合的时候一定不要过度,不然效果可能适得其反,只有把组合+继承运用的恰到好处才能让我们的代码更加优雅和艺术。

上面的样式用到了类选择器,下面就来看看CSS中几个常用的选择器:

类选择器
在 CSS 中,类选择器以一个点号显示:
 

.center {text-align: center}

在下面的 HTML 代码中,h1 和 p 元素都有 center 类。这意味着两者都将遵守 ".center" 选择器中的规则。

<h1 class="center">
This heading will be center-aligned
</h1>

<class="center">
This paragraph will also be center-aligned.
</p>

注意:类名的第一个字符不能使用数字!它无法在 Mozilla 或 Firefox 中起作用
ID选择器

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。

id 选择器以 "#" 来定义。

下面的两个 id 选择器,第一个可以定义元素的颜色为红色,第二个定义元素的颜色为绿色: 

#red {color:red;}
#green 
{color:green;}

下面的 HTML 代码中,id 属性为 red 的 p 元素显示为红色,而 id 属性为 green 的 p 元素显示为绿色。

<id="red">这个段落是红色。</p>
<id="green">这个段落是绿色。</p>

注意:id 属性只能在每个 HTML 文档中出现一次。 

派生选择器

通过依据元素在其位置的上下文关系来定义样式,通过合理地使用派生选择器,可以使标记更加简洁。

比方说,你希望列表中的 strong 元素变为斜体字,而不是通常的粗体字,可以这样定义一个派生选择器: 

li strong {
    font-style
: italic;
    font-weight
: normal;
  
}

请注意标记为 <strong> 的蓝色代码的上下文关系:

<p><strong>我是粗体字,不是斜体字,因为我不在列表当中,所以这个规则对我不起作用</strong></p>
<ol>
<li><strong>我是斜体字。这是因为 strong 元素位于 li 元素内。</strong></li>
<li>我是正常的字体。</li>
</ol>

在上面的例子中,只有 li 元素中的 strong 元素的样式为斜体字,无需为 strong 元素定义特别的 class 或 id,代码更加简洁。

再看看下面的 CSS 规则:

strong {
     color: red;
     }

h2 {
     color: red;
     }

h2 strong {
     color: blue;
     }

下面是它施加影响的 HTML:

<p>The strongly emphasized word in this paragraph is<strong>red</strong>.</p>
<h2>This subhead is also red.</h2>
<h2>The strongly emphasized word in this subhead is<strong>blue</strong>.</h2>

 

在现代布局中,id 选择器和类选择器常常用于建立派生选择器。

 

#sidebar p {
    font-style
: italic;
    text-align
: right;
    margin-top
: 0.5em;
    
}

 
不过有一点要注意:CSS 对大小写不敏感。不过存在一个例外:如果涉及到与 HTML 文档一起工作的话,class 和 id 名称对大小写是敏感的。

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (353人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号