学习慕课网笔记,课程:http://www.imooc.com/code/2024

1.css选择器

子选择器:parent>child

子选择器是指选择parent的范围内的第一个子元素。这里parent和child均是伪代码。可以是class用.classname,也可以是标签ul>li,也可以是id #pid>#cid

后代选择器:parent child

后代选择器是指:选择parent范围内的所欲child元素。与子选择器不同的是,这里包含嵌套内的child元素,而子选择器仅仅选中parent下的直接的第一个子元素。

全局选择:*{}

这里可以配置全局的默认配置,如去掉默认间距等。

多个选择器同时设置:h,span,div{}

多个选择器用逗号间隔,设置通用的样式。

2.元素分类

在css中,html中的标签元素大体被分为三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元素

常用的块状元素有

div,p,h1..h6,ol,ul,dl,table,address,blockquote,form

常用的内联元素有

a,span,br,i,em,strong,label,q,var,cite,code

常用的内联块状元素有:

img,input

2.1块级元素

什么是块级元素?在html中div,p,hl,form,ul,li就是块级元素。设置display:block就是将元素显示为块级元素。如下代码就是将内联元素a转换为块级元素,从而使a元素具有块状元素特点。

a{
display:block;
}

块级元素特点

  1. 每个块级元素都从新的一行开始,并且其后的元素也另起一行(真霸道,一个块级元素独占一行)
  2. 元素的高度、宽度、行高以及顶和底边距都可以设置
  3. 元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一直),除非设定一个宽度。

2.2内联元素

在html中,span,a,label,strong,em就是内联元素(行内元素)(inline)元素。当然块状元素也可以通过代码display:inline将元素设置为内联元素。

div{
display:inline;
}

内联元素特点

  1. 和其他元素都在一行上;
  2. 元素的高度、宽度及顶部和底部边距不可设置;
  3. 元素的宽度就是它包含的文字或图片的宽度,不可改变

解决行内元素间隙bug问题

行内元素之间会产生间隙bug问题的场景:

1、当行内元素之间有“回车”、“tab”、“空格”时就会出现间隙。

如下代码:

<div>
<a>1</a>
<a>2</a>
<span>33333</span>
<span>44444</span>
<em>555555</em>
</div>

解决方法:

1、写在一行,之间不要有空格之类的符号。

<div>
<a>1</a><a>2</a><span>33333</span><span>44444</span><em>555555</em>
</div>

2、使用font-size:0

div{font-size:0;}
a,span,em{font-size:16px;}

网上还有很多有趣的方法可解决这个bug感兴趣的小伙伴们快去搜索一下吧。

 

2.3内联块状元素

内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,代码display:inline-block就是将元素设置为内联块状元素(css2.1)img,input标签就是这种内联块状状态标签。

inline-block元素特点:

  1. 和其他元素都在一行上;
  2. 元素的高度、宽度、行高以及顶和底边距都可以设置;

3.盒子模型

3.1什么是盒子模型

css中,盒子模型是关于元素的宽高的。如下图:

  • content:内容,它可以是文字、图片等
  • padding:内编剧,空白,填充,从内容到边框的距离
  • border:边框,边框的宽度和样式
  • margin:外编剧,边界

3.2边框

盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细、样式和颜色。

如下代码设置div

div{
border:2px solid red;
}

上面是缩写,分开写为:

div{
border-width:2px;
border-style:solid;
border-color:red;
}

注意

  1. border-style(边框样式)常见样式:dashed(虚线)|dotted(点线)|solid(实线)
  2. border-color(边框颜色)中的颜色可设置为十六进制颜色,如:#888
  3. border-width(边框宽度)中宽度也可以设置为:thin|medium|thick(不常用),最常用的是像素(px)

边框方向:

如果想单独设置下边框,可以:div{border-bottom:1px solid red;}

同样可以设置其他三边:

border-top:1px solid red;border-right:1px solid red;border-left:1px solid red;

 

3.3盒模型的宽度和高度

css内定义的宽width和高height指的是填充padding以内的内容。因此一个元素实际宽度为:

盒子的宽度=左边界+左边框+左填充+内容宽度+右填充+右边框+右边界。

测试用例:

        <style type="text/css">
#div_id{
width: 200px;
padding: 20px;
border: 1px solid red;
margin: 10px;
}
</style>
<div id="div_id">
盒模型测试用例
</div>

结果:

3.4盒模型填充

元素内容与边框之间可以设置距离,叫做padding(填充)。填充也可以分上右下左。如下:

div{padding:20px 10px 15px 30px;}

顺序不要搞错!分开写:

div{padding-top:20px;padding-right:10px;padding-bottom:15px;padding-left:30px;}

如果上右下左都填充为10px可以这么写:

div{padding:10px;}

如果上下填充为10px,左右填充为20px:

div{padding:10px 20px;}

3.5盒模型边界

元素与其他元素之间的距离可以使用边界margin来设置。边界同样分上右下左。

4.布局

css包含

css学习--css基础的更多相关文章

  1. css学习-css引入&css选择

    一.引入css的方式,一共有4种,我们只需要掌握三种就可以了,@import的方法我们不做掌握 1.第一种引入的方法 <!--1.第一种引入css的方法--> <h1 style=& ...

  2. CSS学习---css基础知识0105

    CSS, Cascading Style Sheets的简称,中文称为层叠样式表,用来控制网页数据的表现,可以使网页的表现与数据内容分离. 举例:颜色,大小,高度.宽度.内外边距.边框.浮动.定位.字 ...

  3. html+css学习笔记 [基础1]

    ---------------------------------------------------------------------------------------------------- ...

  4. jsp学习---css基础知识学习,float,position,padding,div,margin

    1.常用页面布局 效果图: 代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  5. CSS学习笔记(基础篇)

    CSS概念 CSS 指层叠样式表 (Cascading Style Sheets)(级联样式表) Css是用来美化html标签的,相当于页面化妆. 样式表书写位置: <head> < ...

  6. 总结了一下css的部分基础知识点。---css学习笔记01

    一. css基础 1. 什么是css 层叠样式表:层叠 2. css的三种使用方式 style 属性 --> <div style="css属性值"></d ...

  7. css学习(1)-- 层叠样式表CSS的基础

    一.什么是CSS CSS是Cascading Style Sheets的简写,它除了可以轻松设置网页元素的显示位置和格式处,甚至还能产生滤镜,图像淡化,网页淡入淡出的渐变效果. 一个样式表由样式规则组 ...

  8. 前端学习——css基础知识,选择器与html模板、值得收藏的html标签

    一.css需要的html(采用html5标准) DTD,文档类型声明: <!Doctype html> 文本编码声明: <meta charset="utf-8" ...

  9. 【css学习整理】css基础(样式,语法,选择器)

    CSS是什么? cascading 层叠样式表 sheet 样式文件 style 外观个性化 CSS语法? 声明方法: 选择器(属性: 值; 属性: 值) 选择器: 通过名称制定对哪些标签进行样式设置 ...

随机推荐

  1. Mysql 行列转换

    一.第一种 原数据表 转换后 DROP TABLE IF EXISTS tempdynamic; CREATE TEMPORARY TABLE tempdynamic ( SELECT p.fsPay ...

  2. Java中@Override的作用

    @Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1.可以当注释用,方便阅读:2.编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错.例如 ...

  3. Powershell 字符串处理案例

    有一张Excel表格收集了计算机名和IP地址,另外一张表有计算机名,需要找出这张表中计算机名对应的IP地址. #定义函数Get-LikeContentInfo function Get-LikeCon ...

  4. java异常处理

    try{}catch(){}中的代码与外部代码之间有一定的逻辑关系,需要考虑到如果抛出异常的情况下,外部代码是否可以执行. 在需要捕获异常前尽量不要代入非异常代码,捕获后相关的代码放在一起.

  5. C#_基础,初始化器

    对象初始化器 在没有对象初始化器之前,我们创建一个对象大概需要经过这么两个步骤,首先new一个对象,然后给每个字段赋值.而有了对象初始化器之后,原本需要几行代码才能完成的任务变成一行代码就可以完成,简 ...

  6. 学习设计模式第二十七 - GoF之外简单工厂模式

    示例代码来自<深入浅出设计模式>和<大话设计模式> 概述 简单工厂模式又被称为静态工厂模式,属于类的创建型模式.其实质是由一个工厂类根据传入的参量,动态决定应该创建出哪一个产品 ...

  7. node如何让一个端口同时支持https与http

    众所周知node是一个高性能的web服务器,使用它可以很简单的创建一个http或https的服务器. 比如一个很简单的http服务器: var http = require('http'); var ...

  8. Python黑帽编程2.1 Python编程哲学

    Python黑帽编程2.1  Python编程哲学 本节的内容有些趣味性,涉及到很多人为什么会选择Python,为什么会喜欢这门语言.我带大家膜拜下Python作者的Python之禅,然后再来了解下P ...

  9. 剑指Offer面试题:6.用两个栈实现队列

    一.题目:用两个栈实现队列 题目:用两个栈实现一个队列.队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能. 原文是使用 ...

  10. [解惑]JavaScript事件机制

    群里童鞋问到关于事件传播的一个问题:“事件捕获的时候,阻止冒泡,事件到达目标之后,还会冒泡吗?”. 初学 JS 的童鞋经常会有诸多疑问,我在很多 QQ 群也混了好几年了,耳濡目染也也收获了不少,以后会 ...