五:继承性和层叠性

css有两大特性,即继承性和层叠性。

1. 继承性

面向对象语言都会存在继承的概念,在面向对象语言中,继承的特点:继承了父类的属性和方法。那么我们现在主要研究css,css就是在设置属性的。不会牵扯到方法的层面。

继承:给父级设置一些属性,子级继承了父级的该属性,这就是我们的css中的继承。

记住:有一些属性是可以继承下来 : color 、 font-*、 text-*、line-* 。主要是文本级的标签元素。

但是像一些盒子元素属性,定位的元素(浮动,绝对定位,固定定位)不能继承。

例子和层叠性一起体现。

2. 层叠性

层叠性: 权重大的标签覆盖掉了权重小的标签,说白了 ,就是被干掉了

权重: 谁的权重大,浏览器就会显示谁的属性

数:id的数量 class的数量 标签的数量,顺序不能乱

对上面两个属性进行举例:

首先前端代码为:

<div class="mydiv1">
这是div1的内容
<div class="mydiv2">
这是div1的内容
<p class="myp">这是p的内容</p>
<p id = "p2">这是第二个p的内容</p>
</div>
</div>

然后是css代码为:

/*修饰div标签的*/
div{
color: red;
}
/*修饰class=mydiv2*/
[class=mydiv2]{
background: #00BFFF;
}
/*修饰p标签的*/
p{
text-decoration: underline;
}
/*修饰id=p2的*/
[id=p2]{
background: red;
color: white;
}

效果为:

效果分析:

首先表现前三行字体红色体现了继承性,只要在div下都继承了div的红色字体,class=mydiv2蓝色背景第二层div下的第一个p标签也继承了蓝色背景,而第二个p标签既没有继承红色字体也没有继承蓝色标签是因为层叠性,而id权重比其他的大,所有呈现的是id的修饰效果:红色背景和白色字体。

六:CSS相关属性

1.文本属性

(1) 文本对齐

text-align 属性规定元素中的文本的水平对齐方式。

属性值:

center 把文本排列到中间

left 把文本排列到左边

right 把文本排列到右边

justify 实现两端对齐文本效果

(2)文本颜色

设置color属性即可。

(3)文本首行缩进

text-indent 属性规定元素首行缩进的距离。

p {

text-indent: 32px; #首行缩进两个字符,页面上的默认大小为16px

}

(4)文本修饰

text-decoration属性规定文本修饰的样式

属性值:

none 默认

underline 下划线

overline 定义文本上的一条线

line-through 定义穿过文本下的一条线

inherit 继承父元素的text-decoration属性的值

(5)行高

line-height就是行高的意思,指的就是一行的高度。

针对单行文本垂直居中

公式:行高的高度等于盒子的高度,可以使当行文本垂直居中,注意只适用单行文本。

针对多行文本垂直居中

行高的高度不能小于字体的大小,不然上下字之间会紧挨一起。

第一步,一个宽度300*300的盒子,看盒子中一共显示了几行文字,假如是5行,再看一下行高,如果行高是line-height:30px; 那么就知道行高*5=150px

第二步,让(盒子的高度-150px)/2=75;那么设置盒子的padding-top:75px;同时保证盒子的高度为300px,那么高度改为225px;

(6)阴影

text-shadow:水平方向偏移量 垂直方向偏移量 模糊度 阴影颜色;

text-shadow:3px 3px 6px #FF0000;

(7)文字溢出

text-overflow:ellipsis

案例:文字超出部分显示...

例:

html内容:

<div>
<p>前端让我快乐</p>
<p>前端让我快乐</p>
<p>前端让我快乐</p>
</div>

css内容:

div {
width: 200px;
height: 200px;
border: 1px solid red;
}
div p {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}

(8)边框属性

1.border-width  宽度

2.border-style   样式

3.border-color   颜色

#i1 {

border-width: 2px;

border-style: solid;

border-color: red;

}

通常使用简写方式:

#i1 {

border: 2px solid red;

}

边框样式:

2. 字体属性

(1)字体大小

font-size表示设置字体大小,如果设置成inherit表示继承父元素的字体大小值。

(2)字体粗细

font-weight表示设置字体的粗细

属性值:

none(默认值,标准粗细)

bold(粗体)

border(更粗)

lighter(更细)

100~900(设置具体粗细,400等同于normal,而700等同于bold)

inherit(继承父元素字体的粗细值)

(3)字体系列

如:font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif

如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识别的第一个值。如果都不支持则显示宋体。

(4)vertical-align

定义:vertical-align 属性设置元素的垂直对齐方式。

该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐

常用属性值:

baseline 默认值

top

bottom

middle

它的作用:

内联元素之间的对齐

文字与图片垂直方向的对齐

图片与图片垂直方向的对齐

行内块元素垂直方向的对齐

单元格td的内容垂直方向的对齐

七:css盒模型

在CSS中,"box model"这一术语是用来设计和布局时使用,然后在网页中基本上都会显示一些方方正正的盒子。我们称为这种盒子叫盒模型。

盒模型有两种:标准盒子模型和IE盒子模型。我们在这里重点介绍标准模型。

一个盒子的模型示意图如下:

盒模型属性介绍

width:内容的宽度

height: 内容的高度

padding:内边距,边框到内容的距离

border: 边框,就是指的盒子的宽度,围绕在内边距和内容外的边框

margin:外边距,用于控制元素与元素之间的距离,盒子边框到附近最近盒子的距离。margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。

content(内容):   盒子的内容,显示文本和图像

盒模型的计算:

 如果一个盒子设置了padding,border,width,height,margin(咱们先不要设置margin,margin有坑,后面课程会讲解)

 盒子的真实宽度=width + 2*padding + 2*border

 盒子的真实宽度=height + 2*padding + 2*border

 那么在这里要注意看了。标准盒模型,width不等于盒子真实的宽度。

 另外如果要保持盒子真实的宽度,那么加padding就一定要减width,减padding就一定要加width。真实高度一样设置。

1. padding(内边距)

padding:就是内边距的意思,它是边框到内容之间的距离

另外padding的区域是有背景颜色的。并且背景颜色和内容的颜色一样。也就是说background-color这个属性将填充所有的border以内的区域

padding的设置:

padding有四个方向,分别描述4个方向的padding。

描述的方法有两种:

(1)写小属性,分别设置不同方向的padding

padding-top: 30px;

padding-right: 30px;

padding-bottom: 30px;

padding-left: 30px;

(2)写综合属性,用空格隔开

/*上 右 下 左*/

padding: 20px 30px 40px 50px ;

/*上 左右  下*/

padding: 20px 30px 40px;

/* 上下 左右*/

padding: 20px 30px;

/*上下左右*/

padding: 20px;

注意:一些标签默认有padding。

比如ul标签,有默认的padding-left值。

那么我们一般在做站的时候,是要清除页面标签中默认的padding和margin。以便于我们更好的去调整元素的位置。

我们现在初学可以使用通配符选择器。

*{

padding:0;

margin:0;

}

这种方法效率不高。所以我们要使用并集选择器来选中页面中应有的标签。上面的并集选择器已经有所表现。

2. border(边框)

border:边框的意思,描述盒子的边框

边框有三个要素: 粗细 线性样式 颜色

border: solid

如果颜色不写,默认是黑色。如果粗细不写,不显示边框。如果只写线性样式,默认的有上下左右 3px的宽度,实体样式,并且黑色的边框。

(1)按照三要素来写border

border-width: 3px;
border-style: solid;
border-color: red;
/*
border-width: 5px 10px;
border-style: solid(实线) dotted(点) double(双实线) dashed(虚线);
border-color: red green yellow;
*/

(2)按照方向划分

border-top-width: 10px;
border-top-color: red;
border-top-style: solid; border-right-width: 10px;
border-right-color: red;
border-right-style: solid; border-bottom-width: 10px;
border-bottom-color: red;
border-bottom-style: solid; border-left-width: 10px;
border-left-color: red;
border-left-style:solid;

上面12条语句,相当于 bordr: 10px solid red;

另外还可以这样:

border-top: 10px solid red;

border-right: 10px solid red;

border-bottom: 10px solid red;

border-left: 10pxb solid red;

注意:

border:none;

border:0;

表示border没有设置样式

3. margin(外边距)

margin:外边距的意思。表示边框到最近盒子的距离。

/*表示四个方向的外边距离为20px*/

margin: 20px;

/*表示盒子向下移动了30px*/

margin-top: 30px;

/*表示盒子向右移动了50px*/

margin-left: 50px;

/*表示盒子向左移动了70px*/

margin-right: 70px;

/*表示盒子向上移动了100px*/

margin-bottom: 100px;

八: 块级元素和行内元素

1. 块级元素和行内元素的分类

在以前的HTML知识中,我们已经将标签分过类,当时分为了:文本级、容器级。

从HTML的角度来讲,标签分为:

文本级标签:p、span、a、b、i、u、em。

容器级标签:div、h系列、li、dt、dd。

PS:为甚么说p是文本级标签呢?因为p里面只能放文字&图片&表单元素,p里面不能放h和ul,p里面也不能放p。

现在,从CSS的角度讲,CSS的分类和上面的很像,就p不一样:

行内元素:除了p之外,所有的文本级标签,都是行内元素。p是个文本级,但是个块级元素。

块级元素:所有的容器级标签都是块级元素,还有p标签。

2. 块级元素和行内元素的相互转换

我们可以通过display属性将块级元素和行内元素进行相互转换。display即“显示模式”。

(1)块级元素转换为行内元素

一旦,给一个块级元素(比如div)设置:

display: inline;

那么,这个标签将立即变为行内元素,此时它和一个span无异。inline就是“行内”。也就是说:

此时这个div不能设置宽度、高度。

此时这个div可以和别人并排了。

(2)行内元素转换为块级元素

同样的道理,一旦给一个行内元素(比如span)设置:

display: block;

那么,这个标签将立即变为块级元素,此时它和一个div无异。block”是“块”的意思。也就是说:

此时这个span能够设置宽度、高度

此时这个span必须霸占一行了,别人无法和他并排

如果不设置宽度,将撑满父亲

标准流里面的限制非常多,导致很多页面效果无法实现。如果我们现在就要并排、并且就要设置宽高,那该怎么办呢?办法是:移民!脱离标准流!

css中一共有三种手段,使一个元素脱离标准文档流:

浮动

绝对定位

固定定位

前端学习 之 CSS(二)的更多相关文章

  1. 前端学习:CSS的学习总结(图解)

    前端学习:CSS的学习总结(图解) CSS代码笔记 CSS简介 css的引入方式和书写规范 CSS选择器 CSS属性 CSS盒子模型 CSS的定位

  2. 前端学习(十二):CSS排版

    进击のpython ***** 前端学习--CSS排版 本节主要介绍网页排版中主要格式化元素属性 帮助开发者把css技术与网页排版紧密联系到一起,来更好的实现网页设计效果 字体属性 字体 在日常工作中 ...

  3. 2016.01.22 前端学习 HTML/CSS

    学习HTML/CSS  http://edu.51cto.com/course/course_id-3116.html 明日实践

  4. 【repost】前端学习总结(二十三)——前端框架天下三分:Angular React 和 Vue的比较

    目录(?)[+]   前端这几年的技术发展很快,细分下来,主要可以分成四个方面: 1.开发语言技术,主要是ES6&7,coffeescript,typescript等: 2.开发框架,如Ang ...

  5. 前端学习 之 CSS(三)

    九:浮动 浮动是css里面布局最多的一个属性,也是很重要的一个属性. float:表示浮动的意思. 属性值: none: 表示不浮动,默认 left: 表示左浮动 right:表示右浮动 例: htm ...

  6. Web前端基础(5):CSS(二)

    1. 盒模型 在CSS中,"box model"这一术语是用来设计和布局时使用,然后在网页中基本上都会显示一些方方正正的盒子.我们称为这种盒子叫盒模型. 盒模型有两种:标准模型和I ...

  7. 前端学习 之 CSS(一)

    一:什么是 CSS? ·CSS 指层叠样式表 (Cascading Style Sheets) ·样式定义如何显示 HTML 元素 ·样式通常存储在样式表中 ·把样式添加到 HTML 4.0 中,是为 ...

  8. web前端学习笔记(二)---Django

    [前言]前面(一)学习了web的基础知识,介绍到了MVC,项目使用一个Django框架. Django book:https://code.ziqiangxuetang.com/django/djan ...

  9. web前端学习笔记(CSS变化宽度布局)

    一.“1-2-1”单列变宽布局: 对于变宽度的布局,首先要使内容的整体宽度随浏览器窗口宽度的变化而变化.因此中间的container容器中的左右两列的总宽度也会变化,这样就会产生不同的情况.这两列是按 ...

随机推荐

  1. google插件跨域含用户请求WebApi解决的方案

    问题描述: google插件跨域请求WebApi相关解决方案 1.ajax解决含登录用户信息 $.ajax({ url: url, type: "POST", timeout: 6 ...

  2. Java - 集合 - List

    1.List实现类:ArrayList.LinkedList.Vector ArrayList使用: void test() { //声明 List<String> testlist = ...

  3. java获取配置文件中变量值

    在resources 目录下新建config.properties文件 #文件保存路径 filePath=E:\\images\\file 工具类 public class ConfigUtil { ...

  4. Docker - 命令 - docker volume

    概述 docker volume 命令 背景 docker 容器的存储, 通常需要独立于镜像 docker volume 就是负责这块的命令 1. 写在 docker volume 之前 概述 doc ...

  5. Javascript模块化编程之CommonJS,AMD,CMD,UMD模块加载规范详解

    JavaSript模块化 在了解AMD,CMD规范前,还是需要先来简单地了解下什么是模块化,模块化开发?     模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问 题进行系 ...

  6. Unity UGUI事件接口概述

    UGUI 系统虽然提供了很多封装好的组件,但是要实现一些特定的功能还是显得非常有限,这时候就需要使用事件接口来完成UI功能的实现.比如我们想实现鼠标移动到图片上时自动显示图片的文字介绍,一般思路会想到 ...

  7. HL7解析器

    最近做了关于医疗的项目,用了HL7协议,以下是解析的代码: HL7解析器: using System; using System.Text; using System.Xml; using Syste ...

  8. Centos7编译安装kafka-manager-2.0.0.2

    一.kafka-manager简介 项目地址为:https://github.com/yahoo/kafka-manager 为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫 ...

  9. 用Python给头像加上圣诞帽或圣诞老人小徽章

    随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章: https://zhuanlan.zh ...

  10. Cosmetic Bottles-Cosmetic Packaging Purpose: 5 Things

    Packaging in the cosmetics industry is based on in-depth research. And how it helps to win the edge ...