CSS主要是为了对网页会进行修饰,进行一些页面的布局等等,让网页表现得更美观,更自然,更好看,下面就是我初学CSS的体验。
一条CSS样式主要是有两个部分构成的,一个是选择器,另一个就是选择器里的声明,属性。
1.选择器是您需要改变样式的对象(上图的规则就一级标题生效)。
2.每条声明由一个属性和一个值组成。(无论是一条或多条声明,都需要用{}包裹,且声明用;分割)
3.属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。
一、选择器
选择器分为两种,一种是id选择器,因为在HTML中id的值是唯一的,所以id选择器的适用范围是一个元素。
例如下面的例子
输入以下代码
#sky{
color: blue;
}
<p id="sky">真懒啊真蓝啊</p>
<p id="forest">绿色的森林</p>
结果如下
另一种是class选择器,class值得元素可以对应多个,其值也可多个,所以用的非常普遍。
输入以下代码:
.center{
text-align: center;
}
.large{
font-size: 50px;
}
.blue{
color: blue;
}
<p class="center">我会居中显示的</p>
<p class="blue">我是蓝色的</p>
<p class="center large blue">我又蓝又大还居中</p>
<p class="blue">我也可以是蓝的</p>
结果如下图所示:

二、外部样式表
外部样式表,是指重新创建一个后缀为css的文件,将一些修饰性的语句全部放在这个文件中,这样显得更有条理性。
例如,重新创建一个后缀为html的文件,输入以下代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="mycss.css">
<title>页面标题</title>
</head>
<body>
<h1>今天下雨了</h1>
<hr>
<p class="haha">真不错啊真不错</p>
</body>
</html>
再创建一个后缀为css的文件,输入以下代码
body {
background-color:greenyellow;
text-align: center;
}
h1 {
color: red;
}
.haha {
margin-top: 100px;
color: hotpink;
font-size: 50px;
}
结果如下图所示

引入外部样式表是我们使用样式的主流方式,因为众多的样式规则单独放在一个文件中,与 HTML 内容分开,结构清晰。同时其它页面也可使用,达到复用的目的。
三、内部样式表
所谓的内部样式表,就是将样式放在html文件中,但这样显得HTML文件比较臃肿,看着也不舒服。就是将样式放在html的head中。
例如
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="mycss.css">
<title>页面标题</title>
<style>body {
background-color:greenyellow;
text-align: center;
}
h1 {
color: red;
}
.haha {
margin-top: 100px;
color: hotpink;
font-size: 50px;
}</style>
</head>
<body>
<h1>今天下雨了</h1>
<hr>
<p class="haha">真不错啊真不错</p>
</body>
</html>
结果是相同的,

在head元素中引入了style标签。
四、内联样式
内联样式就是直接将样式放在body语句中,对语句直接进行修饰,但其显的不是很灵活。
<h3 style="color:rgb(128, 0, 38);">哈里哈里哈里</h3>
结果如下:

三种级联样式的优先级为,第一位为内联样式,其次才为内部样式表或外部样式表。
五、颜色非常重要
一个网页的好看与否,与颜色的使用有着莫大的关系。可以采用颜色名称也可以使用颜色RGB16进制值,来设定前景或背景的颜色
如下
<!-- 颜色名称 -->
<h3 style="background-color:Tomato;">Tomato</h3>
<h3 style="background-color:Orange;">Orange</h3>
<h3 style="background-color:DodgerBlue;">DodgerBlue</h3>
<h3 style="background-color:MediumSeaGreen;">MediumSeaGreen</h3>
<h3 style="background-color:Gray;">Gray</h3>
<h3 style="background-color:SlateBlue;">SlateBlue</h3>
<h3 style="background-color:Violet;">Violet</h3>
<h3 style="background-color:LightGray;">LightGray</h3>
<hr>
<!-- 颜色值,3个字节分别代表RGB(Red,Green,Blue)的0~255的值 -->
<h3 style="background-color:#ff0000;">#ff0000</h3>
<h3 style="background-color:#0000ff;">#0000ff</h3>
<h3 style="background-color:#3cb371;">#3cb371</h3>
<h3 style="background-color:#ee82ee;">#ee82ee</h3>
<h3 style="background-color:#ffa500;">#ffa500</h3>
<h3 style="background-color:#6a5acd;">#6a5acd</h3>
<!-- 文本颜色 -->
<h3 style="color:Tomato;">Hello World</h3>
<p style="color:DodgerBlue;">Lorem ipsum dolor sit, amet consectetur adipisicing elit.</p>
<p style="color:MediumSeaGreen;">Ad facilis est ducimus rem consectetur, corporis omnis, eveniet esse dolor molestiae numquam odio corrupti, sed obcaecati praesentium accusamus? Tempora, dolor a?</p>
结果如下图所示

根据网页的不同我们可以随机调颜色。
六、尺寸
比较精确的尺寸可以用height和width来设置,单位有,像素px,百分比%。
下面来举几个例子
在html的body中输入
<div class="example-1">
心中无女人
</div>
<div class="example-2">
拔刀自然神
</div>
在css文件中输入
.example-1 {
width: 100%;
height: 200px;
background-color: rgb(15, 209, 235);
text-align: center;
}
.example-2 {
height: 100px;
width: 500px;
background-color: rgb(73, 138, 60);
text-align:center;
}
结果如下
七、对齐
对于文本,简单的设置text-align属性为left, center, right就可以了
盒子模型

在body中输入
<div class="box1">内容一,外面红色的是我的边框。注意边框的内外都有25px的距离。</div>
<div class="box2">内容二,外面蓝色的是我的边框。注意与上面元素的外边距,发生了叠加,不是50px而是25px。</div>
在css中输入
.box1 {
height: 200px;
width: 200px;
background-color:#615200;
color: aliceblue;
border: 10px solid red;
padding: 25px;
margin: 25px;
}
.box2 {
height: 300px;
width: 300px;
background-color:#004d61;
color: aliceblue;
border: 10px solid blue;
padding: 25px;
margin: 25px;
}
运行结果如下:

八、边框
在html输入
<p class="example-1">我四周有黑色的边框</p>
<p class="example-2">我有一条蓝色的底部边框</p>
<p class="example-3">我有一条椭圆的紫色边框</p>
<p class="example-4">我左边有紫色的边框</p>
在css中输入
.example-1 {height: 100px;
border: 1px dotted black; /* 上下左右都相同 */
}
.example-2 {
border-bottom: 1px solid blue; /* 只设置底部边框 */
}
.example-3 {
border: 1px solid grey;
border-radius: 15px; /* 边框圆角 */
}
.example-4 {height: 300px;
border-left: 5px solid purple;
}
运行结果如下:

可以发现,我们可以根据自己的需求来自行设置边框颜色,大小,高度样式等等。
九、边距
内边距padding可设置为padding: 25px 50px 75px 100px; /* 简写形式,按上,右,下,左顺序设置 */,根据需求任意设置。
外边距与内边距类似。
position属性用于对元素进行定位。该属性有以下一些值:
•static 静态
•relative 相对
•fixed 固定
•absolute 绝对
下边我们来一一介绍这个属性的用法及其作用。
首先static,设置为静态定位position: static;,这是元素的默认定位方式,也即你设置与否,元素都将按正常的页面布局进行。
即:按照元素在 HTML出现的先后顺序从上到下,从左到右进行元素的安排。
然后是relative
为相对定位,来相对于它的静态位置进行偏移
输入以下代码
<!-- HTML -->
<div class="example-relative">我偏移了正常显示的位置。去掉我的样式对比看看?</div>
<!-- CSS -->
.example-relative {
position: relative;
left: 60px;
top: 40px;
background-color: rgb(173, 241, 241);
}
可以看到有明显的偏移情况,左边偏移了60,上边偏移了40

然后是fixed,这个指的是固定偏移,通常用在设置标签,按钮之类的。这将使得元素固定不动(即使你上下左右拖动浏览器的滚动条)。
输入以下代码:
.example-fixed {
position: fixed;
bottom: 40px;
right: 10px;
padding: 6px 24px;
border-radius: 4px;
color: #fff;
background-color: #9d0f0f;
cursor: pointer;
box-shadow: 0 3px 3px 0 rgba(0,0,0,0.3), 0 1px 5px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.2);
}
.broad {
height: 5000px;
width: 5000px;
padding: 20px;
background-color: darkkhaki;
}
可以看到结果,右下角有一个按钮,随着上下滑动,缩小网页,它的位置上始终不变,一直处于右下角
最后一个absolute,名为绝对定位。设置为绝对定位position: absolute;,将使元素相对于其最近设置了定位属性(非static)的父元素进行偏移。
如果该元素的所有父元素都没有设置定位属性,那么就相对于这个父元素。
输入以下代码
<!-- HTML -->
<div class="example-relative">被定位
<div class="example-absolute">
定位
</div>
</div>
<!-- CSS -->
.example-relative {
position: relative;
width: 400px;
height: 200px;
border: 3px solid rgb(87, 33, 173);
}
.example-absolute {
position: absolute;
top: 80px;
right: 5px;
width: 200px;
height: 100px;
border: 3px solid rgb(218, 73, 16);
}
两者之间是一个定位与被定位的关系。

当元素内容超过其指定的区域时,我们通过溢出overflow属性来处理这些溢出的部分。
溢出属性有一下几个值:
•visible 默认值,溢出部分不被裁剪,在区域外面显示
•hidden 裁剪溢出部分且不可见
•scroll 裁剪溢出部分,但提供上下和左右滚动条供显示
•auto 裁剪溢出部分,视情况提供滚动条
设置滚动条
输入以下代码
<div class="example-overflow-scroll-y">手动滑稽广东省分公司法国动画公司符合规定是规范化辅导时间发货的恢复好好好奋斗和肉粉色毒皇后福达合金风刀霜剑会话富家大室恢复健康的尽快核实到
</div>
<!-- CSS -->
.example-overflow-scroll-y {
width: 200px;
height: 100px;
background-color: #eee;
overflow-y: scroll;
}
可以看到以下结果:

在一个区域或容器内,我们可以设置float属性让某元素水平方向上向左或右进行移动,其周围的元素也会重新排列。
我们常用这种样式来使图像和文本进行合理布局,如我们希望有以下的效果:
<html>
<head>
<style>
.example-float-right {
float: right;
}
</style>
</head>
<body>
<img src="http://5b0988e595225.cdn.sohucs.com/images/20171013/fec49f59b98041a4a16886893447f746.jpeg" weigth="50" height="50" class="example-float-right" alt="">
<p>sadhghgsdhgfsdhjfhjdhjfhjdshjfhjbdhvnjveksdjukfdjfhgfhdhj接口都放假时间发货的时间发计划的佛挡杀佛黄金时代几号发货金凤凰细节处开具携家带口V型地方年代初开机快了</p>
</body>
</html>
结果如下:
我们可以用opacity对任何元素(不过常用于图片)设置不透明度。
值在[0.0~1.0]之间,值越低,透明度越高
输入以下代码进行测试
<html>
<head>
<style>
img {
width: 25%;
border-radius: 10px;
float: left;
margin: 10px;
}
.opacity-2 {
opacity: 0.2;
}
.opacity-5 {
opacity: 0.5;
}
.opacity-10 {
opacity: 1;
}
</style>
</head>
<body>
<img class="opacity-2" src="http://00.minipic.eastday.com/20161216/20161216133736_527c856cd897ac8ada279ed8f2cb3cc7_5.jpeg">
<img class="opacity-5" src="http://00.minipic.eastday.com/20161216/20161216133736_527c856cd897ac8ada279ed8f2cb3cc7_5.jpeg">
<img class="opacity-10" src="http://00.minipic.eastday.com/20161216/20161216133736_527c856cd897ac8ada279ed8f2cb3cc7_5.jpeg">
</body>
</html>
结果如下:

十、后代选择器
以空格作为分隔,如:.haha p 代表在div元素内有.haha这种类的所有元素。
输入以下代码
<html>
<head>
<style>
.haha p {
background-color: green;
}
</style>
</head>
<body>
<div class="haha">
<div class="haha">
<p>第一段在div里边</p>
<p>第二段在div里边</p>
<span>
<p>第三段也在div里边</p>
</span>
</div>
<p>第四段不在</p>
<p>第五段也不再</p>
</body>
</html>
结果如下:

子选择器
也称为直接后代选择器,以>作为分隔,如:.haha > p 代表在有.haha类的元素内的直接
元素。
我们进行对比
输入以下代码
将上边代码的空格改为>
<html>
<head>
<style>
.haha > p {
background-color: green;
}
</style>
</head>
<body>
<div class="haha">
<div class="haha">
<p>第一段在div里边</p>
<p>第二段在div里边</p>
<span>
<p>第三段也在div里边</p>
</span>
</div>
<p>第四段不在</p>
<p>第五段也不再</p>
</body>
</html>
运行结果如下:

可以发现,第三段并没有绿色背景框了,因为它的直接父元素是span,不是.haha的直接后代,所以不能选择。只有段落1、2有绿色背景。
伪元素:常用的伪类/伪元素的简单使用:
a:link {color:#FF0000;} /* 未访问的链接 /
a:visited {color:#00FF00;} / 已访问的链接 /
a:hover {color:#FF00FF;} / 鼠标划过链接 /
/ 鼠标移到段落则改变背景颜色 /
p:hover {background-color: rgb(226, 43, 144);}
p:first-line{color:blue;} / 段落的第一行显示蓝色 /
p:first-letter{font-size: xx-large;} / 段落的第一个字超大 */
h1:before { content:url(smiley.gif); } /* 在每个一级标题前插入该图片 /
h1:after { content:url(smiley.gif); } / 在每个一级标题后插入该图片 */

被折叠的 条评论
为什么被折叠?



