css+盒子

一、CSS(Cascading Style Sheet)层叠样式表

CSS优点

  • 批量控制网页的外观
  • 精确控制网页的外观(到像素级别)
css的基本语法形式:
选择器 { css属性名1:值1;css属性名2:值2; …………   }

eg:font{color:red;  font-weight:bold;  font-size:18px;}

HTML属性和css属性的区别

  • HTML属性:

写在标签中 形式为:属性名="属性值"

  • css属性:

写下选择器的大括号里 形式为 属性名:属性值

二、选择器分类

标签选择器:指代(对应)网页中的所有该标签都应用其中的属性设置

标签名{……}

类选择器:指代(对应)网页中的class的值为该类名的所有标签都应用该属性设置

.类名{……}

类选择器举例

id选择器:指代(对应)网页中的id的值为该名称的该标签都应用该属性设置

#id 名{……}

id选择器举例

通用选择器:其自动指代“所有标签”,即所有标签都应用该属性设置

*{ ….. }

注意: 通用选择器慎用,通常只用于设置基本的几个属性,比如文字颜色,文字大小,padding,margin

伪类选择器

:伪类名{……}

伪类名其实只有系统内部规定的不多的几个,不是我们自己定义的,他们的含义也是特定的。
eg:
a:link{ …… }    :表示一个a链接标签在网页初始打开的时候的状态(初始链接状态)
    a:visited{…..}  :表示一个a链接标签在点击(访问)过之后的时候的状态(访问后状态)
    a:hover{….} :表示一个a链接标签在鼠标放上去的时候的状态(悬停状态)
    a:active{….}    :表示一个a链接标签在鼠标摁住但还没有抬起的状态(活动状态)。

复合选择器

  • 层级选择器:

选择器1 选择器2 { ……… }

在选择器1所对应的标签中由选择器2所对应的那些标签.
其中,选择器1和选择器2可以是前面所学的任意某种选择器,而且这种层级关系还可以多层次

eg:
#d1 div{…}
.cc1 p span{…..}
p .cc2 img{…..}
#d1 p a:hover{….

举个栗子:

栗子
  • 分组选择器:指这两个选择器都使用同样的属性设置

选择器1,选择器2 { ……… }

也就是说:
.a {color:red;  font-size:15px;}
.b{ color:red;  font-size:15px;}
可以简写为:
.a, .b{ color:red;  font-size:15px;}
  • 其他复合类型

div.cc1{…}:代表具有class值为cc1的div标签

css的文字段落样式属性
属性 作用 应用
color 设定一个标签中的文字的颜色 颜色值用英文单词或16进制语法和rgb语法
font-size 设置文字大小 单位通常为像素(px)
font-weight 设置文字粗体 粗体(bold)或非粗体(normal)
font-style 设置文字斜体 斜体(italic)或非斜体(normal)
font-family 设置文字的字体名字 可以使用多个字体名,中间用逗号分开
line-height 设置文字所占据的空间高度 单位通常为像素(px)
letter-spacing 设置字符(或字母)之间的间隔距离
word-spacing 设置单词之间的间隔距离 通常只对西方拉丁语系的字符有效
text-align 设定文字的水平对齐方式 功能是相当于标签属性中的align属性
text-indent 设置一个段落的首行缩进距离 单位通常为像素(px)
text-decoration 设置文字的"修饰线" 下划线(underline),中划线(line-through),上划线(overline),none(无)
vertical-align 设定文字在一个表格的垂直对其方式 top(顶对齐),middle(中对齐),bottom(底对齐)

举个css应用的大栗子:

<link rel="stylesheet" type="text/css" href="" />
<style type="text/css">
*{
    font-size:12px;
    color:black;
  }
#table1{
    width:300px;
    height:300px;
//如果一个标签的某方面特性既受html属性影响,又受css属性影响,则:css设置优先
    border:solid 1px black;
    }
.head{
    color:white;
    line-height:36px;
    font-size:16px;
    font-weight:bold;
    height:36px;
    background:#2678BF;
    }
.head img{
    vertical-align:middle;
        }
.main{
    width:282px;
    height:230px;
    }
.t1{
    font-weight:bold;
    }
.t2{
    color:#6666ff;
    border-bottom: dashed 1px gray;
    }
.t3{
        color:blue;
    font-weight:bold;
    text-align:right;
    border-bottom: dashed 1px gray;
    }
.t4{
    color:red;
    font-weight:bold;
    text-align:right;
    border-bottom: dashed 1px gray;
    }
.main tr{
    border-bottom: dashed 1px gray;
    }
    </style>
    <script type="text/javascript"></script>
</head>
<body>
    <table id="table1" width="600" height="600" cellspacing="0" cellpadding="0" >
        <tr>
            <td class="head">![](images/1.png) PHP开班信息</td>
        </tr>
        <tr>
            <td>
                <table class="main" align="center">
                    <tr>
                        <td class="t1">PHP基础班</td>
                        <td></td>
                    </tr>
                    <tr>
                        <td class="t2">北京 - 08月10号</td>
                        <td class="t3">爆满已开班</td>
                    </tr>
                    <tr>
                        <td class="t2">北京 - 09月12号</td>
                        <td class="t4">预约报名</td>
                    </tr>
                    <tr>
                        <td class="t1">PHP基础班</td>
                        <td></td>
                    </tr>
                    <tr>
                        <td class="t2">北京 - 08月10号</td>
                        <td class="t3">爆满已开班</td>
                    </tr>
                    <tr>
                        <td class="t2">北京 - 09月12号</td>
                        <td class="t4">预约报名</td>
                    </tr>
                    <tr>
                        <td class="t1">PHP基础班</td>
                        <td></td>
                    </tr>
                    <tr>
                        <td class="t2">北京 - 08月10号</td>
                        <td class="t3">爆满已开班</td>
                    </tr>
                    <tr>
                        <td class="t2">北京 - 09月12号</td>
                        <td class="t4">预约报名</td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
</body>
网页效果

二、盒子:css中最重要的概念

网页,就是一个盒子套一个盒子

1、盒子的区域构成

边框(border):一个线型的区域,可以是实线或虚线或其他形状。
外边距(margin):也叫“边界”,边框线之外的一块空白区域,其含义是“不能放置物体”
内边距(padding):也叫“补白”,边框线之内的一块空白区域,其含义也是“不能放置物体”
内容区(没有对应的css属性名):指一个盒子中可以放置“物体”的区域——也就是盒子的主要区域。

盒子区域分布
图片.png

2、网页设计中的“内容与表现分离”思想

HTML中,标签具有“表形表意”的作用,也就说内容和表现混在一起
而css是将网页中各个标签的表现都提出来,放到一个专门的地方(eg:style标签中)剩余部分被整体上称为“结构/内容”。这就是内容和表现分离思想。

3、布局原理

布局:指将网页内容以一定的方式放到适合的位置上
上下结构:使用若干个盒子,自然就是上下结构
左右结构:使用若干个盒子,并进行相应的浮动,通常的模式:
i. 2个盒子:一左一右
ii. 3个盒子:两左一右或两右一左,或一边倒。
iii. 更多盒子:通常一边倒。

浮动:形象比喻就是气泡,“向上浮”(float:left/right)
父盒子包住子盒子
①给父盒子设置一个固定高度
②给父盒子的内部最末尾加一个清除浮动的空盒子 <div style="clear:both"></div>
③给父盒子设置一个css属性:overflow:hidden

总得来说就是:布局需要左右排列,左右排列需要浮动,浮动需要修正其破坏效果——让父盒子合理包住其子盒子。

举个盒子的大栗子

用盒子做出以下布局:

做出此布局
<style type="text/css">
        .toubu{
            height:100px;   background:red;
        }
        .zhongjian{
            height:300px;   background:blue;
        }
        .zhongjian .zuo{
            background:yellow;
            float:left;
            width:150px;    height:250px;
            margin-left:15px;
        }
        .zhongjian .you{
            background:purple;  float:right;    
            width:800px;    height:290px;
        }
        .weibu{
            background:#00FFFF;
        }
    </style>
    <script type="text/javascript"></script>
</head>
<body>
    <div class="toubu"></div>
    <div class="zhongjian">
        <div class="zuo">a</div>
        <div class="you">b</div>
    </div>
    <div class="weibu">
    </div>
</body>

哈哈!是不是很简单啊!

4、盒子的尺寸构成:

一个盒子的宽度构成:
左外边距 + 左边框宽 + 左内边距 + width值 + 右内边距 + 右边框宽 + 右外边距
一个盒子的高度构成:
上外边距 + 上边框宽 + 上内边距 + height值 + 下内边距 + 下边框宽 + 下外边距

5、盒子元素

margin外边距;分为4个方向,每个方向都可以单独控制
margin-top: 上外边距
margin-right: 右外边距
margin-bottom:下外边距
margin-left: 左外边距
margin-auto: 上下左右边距相等

margin其实是表示上述4个属性的一个“综合属性”:其实它代表的就是指“一下子设置了4个方向的margin”,其详细使用形式和含义如下:
margin: 一个值;——设置上,右,下,左4个方向均为该值;
margin:值1 值2; ——设置上下margin为值1,左右margin为值2;
margin:值1 值2 值3;——设置上margin为值1,左右margin为值2, 下margin为值3;
margin:值1 值2 值3 值4;——分别设置上,右,下,左4个方向的值;

padding内边距和margin是一样的

border边框,边框指的是边框线。
线有3个方面的特性:线型,线宽,线色,每个特性都可以单独控制。
边框也有4个方向,每个方向都可以单独控制。(top right left bottom)

border-top-style: 顶部边框的线型。常见线型:solid , dashed, dotted
border-top-width: 顶部边框的线宽;
border-top-color: 顶部边框的线色;
border-right-style:
border-right-width:
border-right-color:
……等12个

3个设置线的特性
border-style: 可以使用1-4个值,用来设置4个方向的线的线型,其规则同margin值的设置。
eg:border-style:solid dashed; 表示上下边框为实线,左右边框为虚线;
border-width: 同理,可以设置1-4个值,表示4个方向的线宽。
border-color:同理。

4个方向边框属性:
border-top: 线型 线宽 线颜色;
border-right: 线型 线宽 线颜色;
border-bottom: 线型 线宽 线颜色;
border-left: 线型 线宽 线颜色;

最大的综合属性:一次性设置4个方向的3个特性:
border: 线型 线宽 线颜色;
盒子还有背景属性。

6、盒子背景:

背景分两种:
背景颜色:只能是纯色,全平铺——css3里面已经可以设置过度色。

background-color:颜色值;

背景图片:需要设置图片路径,还可以设置是否重复(平铺),怎么重复,怎么定位。

background-image:url(图片路径);
background-repeat: repeat  //   no-repeat  //  repeat-x  //  repeat-y;
                      重复  //  不重复     // 仅x方向重复//仅y方向重复
background-position: 水平定位方式  垂直定位方式;
          水平定位方式有: left  //  center  //  right  // 离左边的像素值;
          垂直定位方式有: top  //  center  //  bottom // 离顶部的像素值;

背景综合属性:可以一次性设置有关背景的多个数据值:

background:背景色值  背景图值  背景图重复性值  背景图定位值;
  以上4个值,几乎可以任意省略(也就是任意使用其中某些)。

7、块盒子和行内盒子

对块盒子,其display属性的值默认是block
对行内盒子,其display属性的值默认是inline;

实际上,我们完全可以将html盒子的初始表现使用该属性来设置其其它值——即块盒子和行内盒子可以相互转换。

div{ display: inline;}      ——此时div就跟span一样。
span{ display: block;}  ——此时span就跟div一样。

display: inline // block  // none: 显示为:行内盒子//块盒子//不显示

三、样式分类

1、行内样式:

<标签名 其他标签属性……. style=”css属性1:值1;css属性2:值2; …… ” >内容部分</标签名>
只对当前标签有效:通常不推荐使用,或偶尔临时使用。

2、页内样式:

<style>
选择器1{ ….. }
选择器2{ ….. }
……
</style>
只对当前网页有效:常见。

3、外部样式:

css文件中:
选择器1{ ….. }
选择器2{ ….. }
……

网页文件中:
<link rel="stylesheet" type="text/css" href="css文件路径url" />

对所有引入该css的网页有效:常见。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,727评论 1 92
  • 前言 总括: 对于盒子模型,BFC,IFC和外边距合并等概念和问题的总结 原文地址:从CSS盒子模型说起 知乎专栏...
    秦至阅读 750评论 0 3
  • 目录: CSS 盒子模型(Box Model) CSS 边框 CSS 轮廓 CSS Margin(外边距) CSS...
    蔡镇泉阅读 502评论 0 1
  • 我如果爱你—— 绝不像攀援的凌霄花, 借你的高枝炫耀自己; 我如果爱你—— 绝不学痴情的鸟儿, 为绿荫重复单调的歌...
    时光是个罪人阅读 288评论 0 0
  • 我说我找不到兴趣爱好好像每天都度日如年 你说难以置信我不听歌不听歌的人都丢了灵魂 人总会在爱与被爱中无限循环 把这...
    橘子猫爱丽丝阅读 296评论 0 0