当前位置: » 技术分享 » DIV+CSS 基础网页布局组合

DIV+CSS 基础网页布局组合

本文共3785个字,预计阅读10分钟。

div+css是什么:

一句话通俗的解释:div是框架,css是样式,用来装饰框架。JS让它们动起来。再说详细点,div就是给整个网页布局,css就是负责控制div的样式,想让div在哪里怎么显示,都可以通过css来实现,简单的说网页布局就像盖房子,div负责把这栋房子盖起来,而css负责告诉他怎么盖!
table

概括如下:

1、DIV是html其中一个最常用标签,如span、table、h1等之类标签
2、在HTML中DIV标签我们用的最多,可以理解为容器盒子,具有代表性
3、div骨架 配合 css样式类,布局出网页效果

div基本语法

/* 常规的div使用 */
<div class="divcss">内容</div>
/* div 之间的相互嵌套组合使用 */
<div id="divcss">
<div>
<h2> 内容 </h2>
</div>
</div>

为什么用div+css取代〈table〉

很久很久以前,web工程师通过table进行页面布局(现在Google的picasa等应用还能找到table布局应用的例子),现在页面布局大都推荐div+css方式。 

在WEB前端开发中,HTML,CSS,JS这三家三驾马车分别代表着结构,展示,和交互。在web1.0的时代,页面的逻辑并不是特别复杂,对用户体验的要求也不是很高,table被大量开发者用来做布局元素,横跨结构和展示两个部分,是很“重”的。
但是在如今web前端逻辑越来越复杂,用户体验要求越来越高的情况下,对这三者的解耦是必须的。此时再用table拿来做布局就不太合适了,因为table标签的语言根本不是用来做布局的,而是用来传递数据的。而div+css是符合解耦这一思想的,div用来控制布局,css用来控制样式。好处从小了说是整个页面的代码组织结构更合理,耦合度更低,从大了说是更利于前端开发的深度分工和复杂合作。

所谓的div+css是指通过css控制div的布局。其实这儿div可以理解为统称,实际应用的不仅是div,还有p,span,img,table等任意节点的定位都可以通过css来控制。 
简要对比一下: 
1、div+css相对于table更为灵活,用table布局,代码臃肿。 
2、语义性问题。从语义上来说,table应该只是表格数据的容器,不应该是布局的工具。 
3、样式渲染问题。table布局要等内容全部加载完毕后才渲染样式,如果用户网速不好,这样用户体验会很差。

css语法基础讲解

CSS的定义是由三个部分构成:选择符(selector),属性(properties)和属性的取值(value)。

基本格式如下:

selector {property: value}

(选择符 {属性:值})
选择符是可以是多种形式,一般是你要定义样式的HTML标记,例如BODY、P、TABLE……,你可以通过此方法定义它的属性和值,属性和值要用冒号隔开:

body {color: black}

选择符body是指页面主体部分,color是控制文字颜色的属性,black是颜色的值,此例的效果是使页面中的文字为黑色。

如果属性的值是多个单词组成,必须在值上加引号,比如字体的名称经常是几个单词的组合:

p {font-family: "sans serif"}

(定义段落字体为sans serif)

如果需要对一个选择符指定多个属性时,我们使用分号将所有的属性和值分开:

p {text-align: center; color: red}

(段落居中排列;并且段落中的文字为红色)

为了使你定义的样式表方便阅读,你可以采用分行的书写格式:

p
{
text-align: center;
color: black;
font-family: arial
}

(段落排列居中,段落中文字为黑色,字体是arial)

2. 选择符组

你可以把相同属性和值的选择符组合起来书写,用逗号将选择符分开,这样可以减少样式重复定义:

h1, h2, h3, h4, h5, h6 { color: green }

(这个组里包括所有的标题元素,每个标题元素的文字都为绿色)

p, table{ font-size: 9pt }

(段落和表格里的文字尺寸为9号字)

效果完全等效于:

p { font-size: 9pt }
table { font-size: 9pt }

3. 类选择符

用类选择符你能够把相同的元素分类定义不同的样式,定义类选择符时,在自定类的名称前面加一个点号。假如你想要两个不同的段落,一个段落向右对齐,一个段落居中,你可以先定义两个类:

p.right {text-align: right}
p.center {text-align: center}

然后用不在不同的段落里,只要在HTML标记里加入你定义的class参数:

<p class="right"> 这个段落向右对齐的
</p> 
<p class="center">
这个段落是居中排列的
</p>

注意:类的名称可以是任意英文单词或以英文开头与数字的组合,一般以其功能和效果简要命名。

类选择符还有一种用法,在选择符中省略HTML标记名,这样可以把几个不同的元素定义成相同的样式:

.center {text-align: center}

(定义.center的类选择符为文字居中排列)
这样的类可以被应用到任何元素上。下面我们使h1元素(标题1)和p元素(段落)都归为“center”类,这使两个元素的样式都跟随“.center”这个类选择符:

<h1 class="center">
这个标题是居中排列的
</h1>
<p class="center">
这个段落也是居中排列的
</p>

注意:这种省略HTML标记的类选择符是我们经后最常用的CSS方法,使用这种方法,我们可以很方便的在任意元素上套用预先定义好的类样式。

4. ID选择符

在HTML页面中ID参数指定了某个单一元素,ID选择符是用来对这个单一元素定义单独的样式。ID选择符的应用和类选择符类似,只要把CLASS换成ID即可。将上例中类用ID替代:

<p id="intro">
这个段落向右对齐
</p>

定义ID选择符要在ID名称前加上一个“#”号。和类选择符相同,定义ID选择符的属性也有两种方法。下面这个例子,ID属性将匹配所有id=”intro”的元素:

#intro
{
font-size:110%;
font-weight:bold;
color:#0000ff;
background-color:transparent
}

(字体尺寸为默认尺寸的110%;粗体;蓝色;背景颜色透明)
下面这个例子,ID属性只匹配id=”intro”的段落元素:

p#intro
{
font-size:110%;
font-weight:bold;
color:#0000ff;
background-color:transparent
}

5. 包含选择符

可以单独对某种元素包含关系定义的样式表,元素1里包含元素2,这种方式只对在元素1里的元素2定义,对单独的元素1或元素2无定义,例如:

table a
{
font-size: 12px
}

在表格内的链接改变了样式,文字大小为12象素,而表格外的链接的文字仍为默认大小。

6. 样式表的层叠性

层叠性就是继承性,样式表的继承规则是外部的元素样式会保留下来继承给这个元素所包含的其他元素。事实上,所有在元素中嵌套的元素都会继承外层元素指定的属性值,有时会把很多层嵌套的样式叠加在一起,除非另外更改。例如在DIV标记中嵌套P标记:

div { color: red; font-size:9pt}
……
<div>
<p>
这个段落的文字为红色9号字
</p>
</div>

(P元素里的内容会继承DIV定义的属性)
注意:有些情况下内部选择符不继承周围选择符的值,但理论上这些都是特殊的。例如,上边界属性值是不会继承的,直觉上,一个段落不会同文档BODY一样的上边界值。

另外,当样式表继承遇到冲突时,总是以最后定义的样式为准。如果上例中定义了P的颜色:

div { color: red; font-size:9pt}
p {color: blue}
……
<div>
<p>
这个段落的文字为蓝色9号字
</p>
</div>

我们可以看到段落里的文字大小为9号字是继承div属性的,而color属性则依照最后定义的。

不同的选择符定义相同的元素时,要考虑到不同的选择符之间的优先级。ID选择符,类选择符和HTML标记选择符,因为ID选择符是最后加上元素上的,所以优先级最高,其次是类选择符。如果想超越这三者之间的关系,可以用!important提升样式表的优先权,例如:

p { color: #FF0000!important }
.blue { color: #0000FF}
#id1 { color: #FFFF00}

我们同时对页面中的一个段落加上这三种样式,它最后会依照被!important申明的HTML标记选择符样式为红色文字。如果去掉!important,则依照优先权最高的ID选择符为黄色文字。

7. 注释

你可以在CSS中插入注释来说明你代码的意思,注释有利于你或别人以后编辑和更改代码时理解代码的含义。在浏览器中,注释是不显示的。CSS注释以”/*” 开头,以”*/” 结尾,如下:

/* 定义段落样式表 */
p
{
text-align: center; /* 文本居中排列 */
color: black; /* 文字为黑色 */
font-family: arial /* 字体为arial */
}
喜欢 1
转载请标明出处:创之梦博客
本文地址:http://52czm.cn/?p=1123
  • 近期文章
  • 标签云
    css3妙用 (8) H5分享 (4) HTML基础 (4) jquery/js特效 (3) Linux服务笔记 (5) MYSQL笔记 (1) php学习 (6) SEO排名 (2) Vue学习 (2) WP主题制作 (27) 博主推荐 (1) 博客有趣挂件 (1) 玩转重装系统 (3) 网站建设 (2) 美文推荐 (2) 随笔录 (3)
  • pomoshh-psihologa-online :

    pomoshh-psihologa-online pomoshh-psihologa-online

  • 创之梦 :

    离大佬还早着,哈哈哈,这个相对比较基础,还有很多东西

  • 程志辉 :

    点赞!!!感觉越来越大佬了

  • 52czm.cn :

    本博客主题个人原创制作,采用wordpress bootstrap4 ,有兴趣的

  • 52czm.cn :

    留言之前自己做美化感觉效果不是很好 所以用了插件实现 推

  • 52czm.cn :

    看文章的时候,js脚本我怕影响加载速度,文章页我就取消了