了解了HTML之后,一起来看怎么给他穿上好看的衣服_穿搭html-程序员宅基地

技术标签: CSS  前端必会  码歌  

开篇寄语:

别老想着“以后还来得及”,有一天你会发现,有些人,有些事,真的会来不及。

人生的道路虽然漫长,但紧要处常常只有几步,特别是当人年轻的时候。

 

一、HTML与CSS的关系

 

CSS(Cascade Style Sheets)层叠样式表, 是一种用来表现HTML文件样式的计算机语言。

CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。

CSS是用来美化网页用的,没有网页则CSS毫无用处,所以CSS需要依赖HTML展示其功能 。

 

二、CSS语法格式

 

1、注释

 

可以将注释插入 CSS代码中,这样可以提高其可读性,使代码更易被人理解。浏览器会忽略注释,也不会显示它们。

/* 这里的内容就是注释 */

/*
也可以这样多行注释
*/

 

2、行内式

 

行内式将样式定义在具体html元素的style属性中。以行内式写的CSS耦合度高,只适用于当前元素,在设定某个元素的样式时比较常用。但是这种写法会使得页面非常杂乱无章,真正开发中实际上是使用嵌入式或引入外联样式文件的方式来进行渲染的。

<!-- 设置指定的div的宽度和高度,背景色为黑色 -->
<div style="width:200px;height:300px;background:black;"></div>

 

3、嵌入式

 

嵌入式通过在html页面内容开辟一段属于css的代码区域,通常做法为在< head>标签中嵌套<style>标签,在<style>中通过==选择器==的方式调用指定的元素并设置相关 CSS。

选择器名称 {
  属性:属性值;
  ...
}

<style type="text/css">
   /* 使用元素选择器给所有div设置宽度和高度,背景色为黑色 */
   div {
       width:200px;
       height:300px;
       background:black;
  }
</style>

注意:

  • css声明要以分号;结束,声明以{}括起来

  • 建议一行书写一个属性

  • 若值为若干单词,则要给值加引号,如 font-family: "agency fb";

 

4、引入外联样式文件

 

在实际开发当中,很多时候都使用引入外联样式文件,这种形式可以使html页面更加清晰,而且可以达到更好的重用效果。

style.css

/* 使用元素选择器给所有div设置宽度和高度,背景色为黑色 */
div {
   width:200px;
   height:300px;
   background:black;
}

index.html

<link rel="stylesheet" type="text/css" href="style.css" />

rel: 规定当前文档与被链接文档之间的关系。

stylesheet: 文档的外部样式表。

很多时候,大量的 HTML 页面使用了同一个CSS。那么就可以将这些 CSS 样式保存在一个单独的.css 文件中,然后通过<link />元素去引入它。

 

三、CSS选择器

 

在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。

CSS选择器有很多,掌握常用的即可;

 

1、基本选择器

 

*通用选择器

 

/* 初始所有元素的内外间距为0 */
* {
margin: 0;
padding: 0;
}

 

元素选择器

 

选择器名称 {
  属性:属性值;
  ...
}

/* 使用元素选择器给所有div设置宽度和高度,背景色为黑色 */
div {
   width:200px;
   height:300px;
   background:black;
}

 

.类选择器

 

.class属性值 {
  属性:属性值;
  ...
}

/* 使用类选择器给所有class="dv"的元素设置宽度和高度,背景色为黑色 */
.dv {
   width:200px;
   height:300px;
   background:black;
}

 

#id选择器

 

#id属性值 {
  属性:属性值;
  ...
}

/* 使用id选择器给id="dv"的元素设置宽度和高度,背景色为黑色 */
#dv {
   width:200px;
   height:300px;
   background:black;
}

 

分组选择器

 

当几个元素样式属性一样时,可以共同调用一个声明,元素之间用逗号分隔。

选择器1,
选择器2, ...{
  属性:属性值;
  ...
}

/*
使用元素选择器给所有p元素
使用id选择器给id="name"的元素
设置字体颜色为红色,字体大小为20px
*/
p,
#name {
color: red;
font-size: 20px;
}

 

2、组合选择器

 

CSS组合选择器说明了两个选择器直接的关系。 CSS组合选择符包括各种简单选择符的组合方式。

 

后代选择器(派生选择器)

 

用于选择指定标签元素下的后辈元素,以空格分隔

父元素 子元素(可以继续获取子元素的子元素) {
  属性:属性值;
  ...
}

/*
使用类选择器给所有class="food"的元素
的所有子元素li设置蓝色的边框
*/
.food li {
   border: 1px solid blue;
}

/*
使用类选择器给所有class="food"的元素
的所有子元素li
的所有子元素ul
的所有子元素li设置红色的边框
*/
.food li ul li {
   border: 1px solid red;
}
<h1>食物</h1>
<ul class="food">
   <li>水果
       <ul>
           <li>香蕉</li>
           <li>苹果</li>
           <li>梨</li>
       </ul>
   </li>
   <li>蔬菜
       <ul>
           <li>白菜</li>
           <li>油菜</li>
           <li>卷心菜</li>
       </ul>
   </li>
</ul>

 

四、CSS常用属性

 

背景

 

背景属性用于定义HTML元素的背景效果

 

background-color

设置元素的背景颜色

/* 
设置body元素的背景色为灰色
两种方式效果一致
*/
body {
   background-color:gray;
   /* 另一种方式 */
   background:gray;
}

 

background-image

设置元素的背景图像,默认情况下,背景图像进行平铺重复显示,以覆盖整个元素实体。

/* 
设置body元素的背景为图片
两种方式效果一致
*/
body {
   background-image: url(img/Daniel_Wu.jpg);
   /* 另一种方式 */
   background: url(img/Daniel_Wu.jpg);
}

 

background-repeat

设置是否重复图像及如何重复背景图像

/* 
设置body元素的背景为图片,图片不重复显示
两种方式效果一致
*/
body {
   background-image: url(img/Daniel_Wu.jpg);
   background-repeat: no-repeat;
   /* 另一种方式 */
   background: url(img/Daniel_Wu.jpg) no-repeat;
}

background-repeat可选的值

描述
repeat 默认。背景图像将在垂直和水平方向重复
no-repeat 背景图像仅显示一次
repeat-x 背景图像水平方向重复
repeat-y 背景图像垂直方向重复

文本

 

color

设置文本的颜色

/* 字体颜色蓝色 */
body {
   color:blue;
}
/* 字体颜色绿色 */
h1 {
   color:#00ff00;
}
/* 字体颜色红色 */
h2 {
   color:rgb(255,0,0);
}

 

text-align

设置文本对齐方式,center(居中),left(左对齐),right(右对齐)

body {
   text-align:center;
}

 

text-decoration

规定添加到文本的修饰,属性值:none、underline、overline、line-through

  • underline:对文本添加下划线。

  • overline:对文本添加上划线。

  • line-through:对文本添加中划线。

  • none:关闭原本应用到元素上的所有横线样式。

h3 {
   text-decoration:underline;
}

 

text-indent

设置文本首行缩进

p {
   text-indent: 2em;
}

 

字体

 

font-family

文本字体,该属性设置文本的字体。

font-family属性应该设置几个字体名称作为一种"后备"机制,如果浏览器不支持第一种字体,他将尝试下

一种字体,所以尽量将不常见的字体靠前,将最常见的字体放置在最后,作为替补。

注意:

  • 只有当字体名中含有空格或符号或汉字时,才需要在font-family声明中加引号:

    body {
       font-family: "arial black";
    }
  • 多个字体系列是用一个逗号分隔指明

    /* 靠前的先生效 */
    p {
       font-family: "微软雅黑", "黑体", "agency fb";
    }

 

font-size

文本大小

/* 字体大小50px */
body {
   font-size: 50px;
}

/* 字体大小25px */
#span1 {
   font-size: 25px;
}

 

font-weight

字体加粗,该属性设置文本的粗细。100 ~ 900:为字体指定了 9 级加粗度。

font-weight: blod;可以将文本设置为粗体。

400 等价于 normal;

700 等价于 bold。

body {
   font-weight: 100;
   font-weight: 900;
   /* 下面两种方式效果一致 */
   font-weight: 700;
   font-weight: blod;
   /* 下面两种方式效果一致 */
   font-weight: 400;
   font-weight: normal;
}

 

列表

 

list-style

设置列表样式,list-style可选的值。

描述
none 无标记
disc 默认,标记是实心圆
circle 标记是空心圆
square 标记是实心方块
decimal 标记是数字
decimal-leading-zero 标记是0开头数字(01, 02, 03…)
lower-roman 标记是小写罗马数字(ⅰ, ⅱ, ⅲ,…)
upper-roman 标记大写罗马数字(Ⅰ, Ⅱ, Ⅲ,…)
lower-alpha 标记是小写英文字母(a, b, c,…)
upper-alpha 标记是大写英文字母(A, B, C,…)

 

/* 列表样式无标记 */
.food li ul li {
   list-style: none;
}

 

对齐方式

 

text-align

规定元素中的文本的水平对齐方式。属性值如下

描述
left 默认值,文本排列到左边
right 文本排列到右边
center 文本排列到中间
justify 文本两端对齐

display

display属性用于定义元素的显示类型。

属性值如下

描述
none 此元素不会被显示
block 此元素将被显示为块级元素,此元素前后会带有换行符
inline 此元素被显示为内联元素,元素前后没有换行符
inline-block 此元素被显示为内联元素,元素前后没有换行符

盒子模型

 

border、padding、margin三个属性构成了盒子模型。

 

border

设置所有的边框属性。

1.可同时设置边框的宽度、样式、颜色

/* 设置边框和宽高 */
div{
   border: 1px solid black;/* 设置粗细为1px的黑色实心线边框 */
   width: 200px;/* 宽 */
   height: 100px;/* 高 */
}

2.使用border-width、border-style、border-color单独设置

div {
   border-width: 1px;/* 粗细1px */
   border-style: solid;/* 实心线 */
   border-color: black;/* 黑色 */
}

border-style的属性

描述
none 无边框
dotted 点状边框
dashed 虚线边框
solid 实线边框
double 双实线边框

padding

设置元素所有内边距的宽度,默认按照上右下左的顺序设定,或者设置各边上内边距的宽度。

/* 设置上右下左的内边距 */
div {
   padding:10px 5px 15px 20px;
}

单独设置各边的内边距:padding-toppadding-leftpadding-bottompadding-righ

/* 设置上右下左的内边距 */
div {
   padding-top: 10px;
   padding-left: 5px;
   padding-bottom: 15px;
   padding-right: 20px;
}

 

margin

设置一个元素所有外边距的宽度,或者设置各边上外边距的宽度。

/* 设置上右下左的外边距 */
div {
   margin:10px 5px 15px 20px;
}

单独设置各边的外边距:margin-topmargin-leftmargin-bottommargin-right

/* 设置上右下左的外边距 */
div {
   margin-top: 10px;
   margin-left: 5px;
   margin-bottom: 15px;
   margin-right: 20px;
}

auto可以设置居中效果

div {
   margin: 0px auto;
}

auto:自动,可以理解为居中的意思,浏览器自动计算外边距。

margin: 0px auto; 0或者0px表示上下间距为0px,auto表示左右外边距自动计算,表现为居中状态。

 

测试

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8" />
<title></title>

<style>
.a_div {
width: 300px;
height: 300px;
border: 1px solid red;
               /* 设置上右下左的外边距 */
margin: 100px;
}

.b_div {
width: 200px;
height: 200px;
background: yellow;
               /* 设置左外边距 */
margin-left: 20px;
               /* 设置上外边距 */
margin-top: 20px;
               /* 设置上右下左的内边距 */
padding: 20px;
}
</style>
</head>

<body>
<div class="a_div">
<div class="b_div">你好</div>
</div>
</body>

</html>

 

五、CSS定位和浮动

 

CSS 定位 (positioning) 属性允许你对元素进行定位 ,定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。

CSS 有三种基本的定位机制:普通流浮动定位

除非专门指定,否则所有框都在普通流中定位,即普通流中的元素的位置由元素在HTML 中的位置决定浏览器在读取HTML源代码的时候是根据元素在代码出现的顺序读取,最终元素的呈现方式是依据元素的盒子模型来决定的。行内元素是从左到右,块状元素是从上到下。默认的书写方式即是普通流。

 

1、定位position

 

通过使用 position 属性,我们可以选择 4 种不同类型的定位,这会影响元素框生成的方式

描述
static 默认值,普通流
relative 相对定位,其子元素如果使用定位相对于它的位置改变
absolute 绝对定位,相对于其父元素的位置作为参照物
fixed 绝对定位,相对于其父元素的位置作为参照物

 

static:默认值,普通流(忽略lefttoprightbottom 或者z-index 声明)。

relative:生成相对定位的元素,相对于其正常位置进行定位。元素的位置通过lefttopright

bottom属性进行改变,其子元素如果使用定位相对于它的位置改变。

absolute:生成绝对定位的元素,相对于其第一个父元素进行定位,如果父元素没有设置relative属性,

则向上继续寻找,直到body元素。元素的位置通过lefttoprightbottom 属性进行规定。

fixed:生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过lefttopright

bottom 属性进行规定。

 

2、浮动float

 

float的属性值有noneleftright

描述
none 默认值,不浮动
left 左浮动,元素从左边开始并列显示为一行
right 右浮动,元素从右边开始并列显示为一行

3、测试

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS定位和浮动</title>

<style type="text/css">

.a_div {
width: 200px;
height: 200px;
background: black;
               /* 相对定位,其子元素如果使用定位相对于它的位置改变 */
position: relative;
margin: 0 auto;
}

.b_div {
width: 50px;
height: 50px;
background: yellow;
               /* 
              绝对定位,相对于其第一个父元素进行定位,
              如果父元素没有设置relative属性,则向上继续寻找,直到body元素
              */
position: absolute;
top: 0px;
left: 0px;
}

.c_div {
width: 50px;
height: 50px;
                /* 相对浏览器绝对定位 */
position: fixed;
bottom: 20px;
right: 20px;
background: blue;
}

#div1 {
width: 100px;
height: 100px;
background: red;
float: left; /* 左浮动 */
}
#div2 {
width: 100px;
height: 100px;
background: blueviolet;
float: left; /* 左浮动 */
}
#div3 {
width: 100px;
height: 100px;
background: darkcyan;
float: left; /* 左浮动 */
}
#div4 {
width: 100px;
height: 100px;
background: darksalmon;
float: left; /* 左浮动 */
}

/* 鼠标移动至指定元素时修改样式 */
#div4:hover {
background: black;
}
</style>
</head>
<body>

<div class="a_div">
<div class="b_div"></div>
</div>

<div class="c_div"></div>

<div id="div1"></div>
<div id="div2"></div>
<div id="div3"></div>
<div id="div4"></div>

</body>
</html>

 

受篇幅限制,想获取配套视频及文档资料,添加码歌悠悠QQ: 1811119218 ,即可获取。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014332333/article/details/88531839

智能推荐

windows下实现socket通信_vsock-listen windows能实现吗-程序员宅基地

文章浏览阅读4.3k次,点赞4次,收藏14次。原本以为c是跨平台,所以,c在windows下和linux下的程序应该是类似于Java,什么都不用改变的,今儿才恍然大悟,他们的类库不一样啊……下面我贴出来一个windows下的c语言socket通信例子,这里我们客户端传递一个字符串,服务器端进行接收。【实际上我们需要完成的二进制流的传输,需要使用unsignedchar来实现,因为c里没有byte数据类型,这里我们不以byte为例,因为_vsock-listen windows能实现吗

高通支持升级鸿蒙,华为」华为鸿蒙OS来了,你会选择升级吗?(附新品汇总)...-程序员宅基地

文章浏览阅读119次。今晚鸿蒙OS正式发布,依旧是以往的风格,采用视频录播形式。Harmon OS一生万物,万物归一。华为Harmony OS是多设备多硬件统一的操作系统,Harmony OS,将统一控制中心汇聚在负一屏,便可完成对所有设备的操作,包括但不限于手机与平板,手机与智慧屏,手机与耳机等等。新品汇总华为新款MatePad Pro及MatePad11本次Pro系列共有两个版本,与之前曝光的信息相同,其中10.8..._高通处理器会升级鸿蒙系统么

Pandas中的DataFrame按指定顺序输出所有列的方法-程序员宅基地

文章浏览阅读756次。问题:输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致。例如:import pandas as pdgrades = [48,99,75,80,42,80,72,68,36,78]df = pd.DataFrame( {'ID': ["x%d" % r for r in range(10)], ..._顺序输出dataframe中的一列

用ImageGrab.grabclipboard()获取的图片时出现错误AttributeError: 'NoneType' object has no attribute 'save'解决方案-程序员宅基地

文章浏览阅读1.1w次,点赞11次,收藏6次。 今天使用Python图像处理库ImageGrab,在调用==grabclipboard()==方法获取到剪切板上图片的时候报了这个让我懵圈了的异常~~后来查了官方文档才知道,grabclipboard函数有一个缓存的问题,操作太快,有时候它就会读取上一次的内容,因为第一个没有读取到图像,所以报错了。..._attributeerror: 'nonetype' object has no attribute 'save

数组指针强制转换为结构体指针_数组强制转换为结构体-程序员宅基地

文章浏览阅读6.6k次,点赞22次,收藏56次。前两天在看TI官方提供的BasicRF的源码时,发现一个看不懂的地方,就是将一个数组名强制转换为结构体指针,如下所示。在上面的图片中,basicRfPktHdr_t是一个结构体,rxMpdu是一个长度为128个字节的数组名,pHdr是一个结构体指针。这让我很是清楚这么写是什么意思,因为以前从没有遇到,现在遇到了就算是进一步学习C语言了。通过百度查..._数组强制转换为结构体

页面倒计时器-程序员宅基地

文章浏览阅读492次。 接通电源之后,系统进行初始化,按下设置键S1或者S2,LCD进入时间设置界面,先使用齿轮确定要设定的位置(时、分、秒),按下s1按键进行确认,开始设置这个位置,可以使用齿轮电位计进行对该位置的数进行加减,设置数值,设置完成之后按下S1键进行确认,然后重新使用齿轮电位计确定要设置的位置,重复上述操作。全部设置完成之后,按下S2确认完成设置时间。接着进入倒计时器界面。计时完成之后,LED闪...___delay_cycles(1000000);

随便推点

软件工程-高内聚低耦合-程序员宅基地

文章浏览阅读1.7k次。软件工程-软件设计-高内聚低耦合高内聚低耦合,是判断软件设计好坏的标准,主要用于程序的面向对象的设计,主要看类的内聚性是否高,耦合度是否低。目的是使程序模块的可重用性、移植性大大增强。通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低。内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事,它描述的是模块内的功能联系;耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取...

vue draggable实现拖拽效果_vuedraggable 动画-程序员宅基地

文章浏览阅读754次。首先安装: npm ivuedraggable -s然后引入相对应的组件importDraggablefrom'vuedraggable';在components里面进行注册<!-- group: 如果又相同的组, 则可以互相进行拖拽, tag: 渲染后的标签形式, animation: 过渡动画 --> <draggable class="dra..._vuedraggable 动画

Ubuntu网络接口配置文件:nano/etc/network/interfaces 以及 Ifconfig只显示一个lo_etc/network中interface没有了-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏2次。没接触过linux,由于要部署项目,安装的Ubuntu16.04,安装完配置网络接口,遇到的两个问题如下:1 网络接口配置文件:nano/etc/network/interfaces 执行此命令,如果提示bash:/etc/network/interfaces:Permission denied 拒绝访问,没有权限,首先看是不是root用户,是的话执行:chmod_etc/network中interface没有了

AD18中元器件的中心点标注和叉叉怎么取消掉_ad原理图去除交叉点-程序员宅基地

文章浏览阅读2.9k次。不小心按快捷键按错了,结果出现这种圈圈叉叉,干扰布线解决方法:关掉这两个结果:解决!参考:参考的这个有点标题和内容不搭配。牛头马嘴,,,找不到component reference point和3D Body reference point..._ad原理图去除交叉点

基于Android校园跳蚤市场交易系统的设计与实现_基于安卓的跳蚤市场论文-程序员宅基地

文章浏览阅读3.3w次,点赞76次,收藏458次。小跳蚤 大用途前言: 算一算时间又快到了一年一度的毕业设计了吧,我也差不多完成我自己的毕业设计一年了,在此推出我的毕业设计成果以供后来的学弟学妹参考。都说站在巨人肩膀上,更上一层楼,在枯燥的编程期间我也有参考CSND大力哥的文章。很多人 把毕业设计应付过去,但是学习终究是自己的,绝知此事要躬行。接下来跟着我学习和分析的思路看一下成果吧!目录第1章 引言.... 5..._基于安卓的跳蚤市场论文

一文带你快速了解 Java 线上问题快速诊断神器 Arthas_[root@localhost ~]# ./as.sh arthas script version:-程序员宅基地

文章浏览阅读685次,点赞4次,收藏14次。文章目录一、什么是 Arthas二、特性一览三、Arthas 能为你做什么?四、快速安装1、前提条件2、一键安装五、快速使用1、启动并连接进程六、使用示例1、dashboard(当前系统的实时数据面板)2、sysprop(查看或修改java属性)3、mbean(实时查看Mbean信息)4、thread(查看线程)5、thread -n(查看占CPU前几的线程栈信息)6、jad(反编译代码)7、sc(查看已经加载的类)8、sm(列出某个类加载的方法)9、trace(跟踪方法的消耗时间)10、stack (查看_[root@localhost ~]# ./as.sh arthas script version: 3.7.2 [info] java_home: /

推荐文章

热门文章

相关标签