CSS基础知识

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://ligang.blog.csdn.net/article/details/44040625

CSS全称为"层叠样式表(Cascading Style Sheets)"

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

内联式 > 嵌入式 > 外部式 【就近原则(离被设置元素越近优先级别越高)】 但是嵌入式>外部式有一个前提:嵌入式css样式的位置一定在外部式的后面。

一. CSS样式基本知识

子选择器(作用于元素的第一代后代): .food>li{border:1px solid red;} 包含选择器(作用于元素的所有后代): .first span{color:red;} 通用选择器: * {color:red;} 伪类选择符(它允许给html不存在的标签[标签的某种状态]设置样式,比如给html中一个标签元素的鼠标滑过的状态来设置字体颜色): a:hover{color:red;} 分组选择符(想为html中多个标签元素设置同一个样式时,可以使用分组选择符): 继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。

p{color:red;}
<p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

结果p中的文本与span中的文本都设置为了红色。 但注意有一些css样式是不具有继承性的。如border:1px solid red;

p{border:1px solid red;}
<p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

只是给p标签设置了边框为1像素、红色、实心边框线,而对于子元素span是没用起到作用的。

p{color:red;} /*权值为1*/
p span{color:green;} /*权值为1+1=2*/
.warning{color:white;} /*权值为10*/
p span.warning{color:purple;} /*权值为1+1+10=12*/
#footer .note p{color:yellow;} /*权值为100+10+1=111*/

记住!important优先级样式是个例外,权值高于用户自己设置的样式。

p{color:red!important;}
p{color:green;}

二. 文字排版

文字对齐:text-align:center/left/right; 字体设置:font-family:"宋体"; 字体颜色:color:red; 字体大小:font-size:12px; 字体加粗:font-weight:bold; 文字斜体:font-style:italic; 下划线: text-decoration:underline; 删除线: text-decoration:line-through; 行间距: line-height:1.6em; 段落缩进:text-indent:2em; [2em的意思就是文字的2倍大小] 文字/字母间隔:letter-spacing:50px; 单词间隔:word-spacing:50px;

三. 元素分类

块状元素、内联元素(又叫行内元素)和内联块状元素 常用的块状元素有: <div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form> 常用的内联元素有: <a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code> 常用的内联块状元素(同时具备内联元素、块状元素的特点)有: <img>、<input> 内联转块:display:block 块转内联:display:inline-block 块级元素特点: 1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行) 2、元素的高度、宽度、行高以及顶和底边距都可设置。 3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。 内联元素特点: 1、和其他元素都在一行上; 2、元素的高度、宽度、行高及顶部和底部边距不可设置; 3、元素的宽度就是它包含的文字或图片的宽度,不可改变。

四. 盒模型

内容(content)、填充(padding)、边框(border)、边界(margin) 边框: border:2px solid red; [虚线:dashed、点线:dotted、实线:solid] 一个元素实际宽度(盒子的宽度) = 左边界 + 左边框 + 左填充 + 内容宽度 + 右填充 + 右边框 + 右边界 一个元素实际宽度(盒子的宽度) = margin-left + border-left + padding-left + width + padding-right + border-right + margin-right 一个元素实际高度(盒子的高度) = margin-top + border-top + padding-top + height + padding-bottom + border-bottom + margin-bottom

五. 布局模型

流动模型(Flow)、浮动模型(Float)、层模型(Layer) 1、流动模型(Flow)是默认的网页布局模式 第一点,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。 第二点,在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。 2、浮动模型(Float) ==> 后者覆盖前者 float:left/right; 3、层模型(Layer) ==> left优先级高 绝对定位(position: absolute)、相对定位(position: relative)、固定定位(position: fixed) (1) position:absolute(表示绝对定位),将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口 相对于浏览器窗口处于右下角。并且拖动滚动条时位置固定变化。

div{
    width:200px;
    height:200px;
    border:2px red solid;
    position:absolute;
    right:0;
    bottom:0;
}
<div id="div1"></div>

(2) position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。 相对于以前位置向下移动50px,向右移动100px

#div1{
    width:200px;
    height:200px;
    border:2px red solid;
    position:relative;
    left:100px;
    top:50px;
}
<div id="div1"></div>
<span>偏移前的位置还保留不动,覆盖不了前面的div没有偏移前的位置</span>

(3) 固定定位(position: fixed),与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。 相对于浏览器视图处于右下角。并且拖动滚动条时位置固定不变。

#div1{
    width:200px;
    height:200px;
    border:2px red solid;
    position:fixed;
    right:0;
    bottom:0;
}
<div id="div1"></div>
<p>文本文本文本文本文本文本文本文本文本文本</p>

(4) Relative与Absolute组合使用 1、参照定位的元素必须是相对定位元素的前辈元素: 2、参照定位的元素必须加入position:relative; 3、定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。

<div id="box1"><!--参照定位的元素-->
    <div id="box2">相对参照元素进行定位</div><!--相对定位元素-->
</div>

#box1{
    width:200px;
    height:200px;
    position:relative;        
}
#box2{
    position:absolute;
    top:20px;
    left:30px;         
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【云+社区年度征文】2020一网打尽CSS世界

    一个水平流上只能单独显示一个元素,因此理论上都可以配合clear属性来清除浮动带来的影响。

    奋飛
  • 浮动、定位

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    奋飛
  • 单页应用优化--懒加载

    最近查阅了一些帖子,发现了一个极其强大的方法,其兼容性有待提高~~(但已有相关的的Polyfill方式)

    奋飛
  • 没人看系列----css 随笔

    kmonkey
  • CSS学习

    在很多方面,ID选择器都类似于类选择器,但也有一些重要的区别: 1、为标签设置id=”id名称”,而不是class=”类名称”。 2、id选择符的前面是#号,而...

    Cloud-Cloudys
  • zepto 基础知识(3)

    41.height   height() 类型:number   height(value) 类型:self   height(func...

    用户1197315
  • 数据结构 - 顺序表

    在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生...

    忆想不到的晖
  • CSS一个div内两个子元素的高度自适应

    3-1-2019更新:使用flex布局,align-items:flex-start即可。

    gojam
  • 第71天:jQuery基本选择器(二)

    半指温柔乐
  • Python+Selenium笔记(六):元素定位

    (一)  前言 Web应用以及包含超文本标记语言(HTML)、层叠样式表(CSS)、JS脚本的WEB页面,基于用户的操作(例如点击提交按钮),浏览器向WEB服务...

    free赖权华

扫码关注云+社区

领取腾讯云代金券