CSS基础操作(七)-CSS三大特性(继承性、层叠性、优先级)、元素定位方式(static、relative、absolute)

5 CSS三大特性

5.1 继承性

  元素可以继承上级元素的文本相关样式,元素自带效果不受继承影响,比如:超链接a标签的字体颜色、h1-h6字体大小,除非单独对此标签进行设置。

5.2 层叠性

  多个选择器有可能选择到同一个元素,如果作用的样式不同,则全部层叠生效;如果作用的样式相同,则由优先级决定。

5.3 优先级

  作用范围越小,优先级越高(就近原则):id>class>标签名>继承(继承属于间接选中)

 

6 元素定位方式

6.1 静态定位 static(文档流定位)

格式:position:static(默认)

显示特点:块级元素从上往下排列,行内元素从左向右排列

如何移动元素:通过外边距

测试代码:

 <!DOCTYPE html>
 <html>
 <head>
 <meta charset="UTF-8">
 <title>static</title>
 <style type="text/css">
 body {
  margin: 0; /*设置左侧、上侧边距为0*/
 }
 ​
 div {
  width: 100px;
  height: 100px;
  border: 1px solid red;
 }
 </style>
 </head>
 <body>
   <div>div1</div>
   <div>div2</div>
   <div>div3</div>
   <span>span1</span>
   <span>span2</span>
   <span>span3</span>
 </body>
 </html>

显示效果:

CSS基础操作(七)-CSS三大特性(继承性、层叠性、优先级)、元素定位方式(static、relative、absolute)

6.2 相对定位 relative

格式:position:relative

显示特点:元素不脱离文档流(不管元素移动到哪里,仍然占着原来的位置)

如何移动元素:通过top/bottom/left/right让元素相对于初始位置做位置偏移

测试代码:

 <!DOCTYPE html>
 <html>
 <head>
 <meta charset="UTF-8">
 <title>relative</title>
 <style type="text/css">
 body {
  margin: 0; /*设置左侧、上侧边距为0*/
 }
 ​
 div {
  /*默认position: static;*/
  width: 100px;
  height: 100px;
  border: 1px solid red;
 }
 ​
 #d2 {
  /*相对位置*/
  position: relative;
  /*通过top/bottom/left/right可以设置相对初始位置的移动,
      仅对自己有效,原先的位置还占着,不影响其他元素*/
  top: 50px;
  left: 100px;
 }
 /*鼠标悬浮更换样式*/
 div:hover {
  position: relative;
  left: 200px;
 }
 /*标签选择器优先级高于id选择器,id选择器要单独进行设置*/
 #d2:hover {
  position: relative;
  left: 300px;
 }
 </style>
 </head>
 <body>
   <div>div1</div>
   <div id="d2">div2</div>
   <div>div3</div>
 </body>
 </html>

显示效果:

 CSS基础操作(七)-CSS三大特性(继承性、层叠性、优先级)、元素定位方式(static、relative、absolute)

6.3 绝对定位 absolute

格式:position:absolute

显示特点:元素脱离文档流(只要元素修改成绝对定位,则它所占的位置立马让出)

如何移动元素:通过top/bottom/left/right让元素相对于窗口(默认)或某一个上级元素(需要在上级元素中做相对定位)做位置偏移

测试代码:

 <!DOCTYPE html>
 <html>
 <head>
 <meta charset="UTF-8">
 <title>absolute</title>
 <style type="text/css">
 body {
  margin: 0;
 }
 ​
 div {
  /*默认position:static*/
  width: 100px;
  height: 100px;
  border: 1px solid blue;
 }
 ​
 #d2 {
  /*position:absolute:元素脱离文档流
            位置相对于窗口,失去原先占的位置*/
  position: absolute;
  top: 50px;
  left: 100px;
 }
 ​
 /*d4的父标签*/
 #d3 {
  width: 200px;
  height: 200px;
  border: 5px dotted yellow;
  margin: 50px;
  /*只有此处设置为了relative,子集标签才能相对父级标签偏移,否则相对窗口位置进行偏移*/
  position: relative;
 }
 ​
 #d4 {
  width: 80px;
  height: 80px;
  background-color: pink;
  /*绝对定位:元素脱离文档流,失去先前占有的位置
            只有父级标签设置为relative,才能相对父级标签定位,否则相对窗口定位*/
  position: absolute;
  top: 50px;
  left: 50px;
 }
 ​
 #d5 {
  width: 80px;
  height: 80px;
  background-color: orange;
 }
 </style>
 </head>
 <body>
   <div>div1</div>
   <div id="d2">div2</div>
   <div id="d3">
     <div id="d4">div4</div>
     <div id="d5">div5</div>
   </div>
 </body>
 </html>

显示效果:

CSS基础操作(七)-CSS三大特性(继承性、层叠性、优先级)、元素定位方式(static、relative、absolute)

absolute测试:

CSS基础操作(七)-CSS三大特性(继承性、层叠性、优先级)、元素定位方式(static、relative、absolute)

测试代码:

 <!DOCTYPE html>
 <html>
 <head>
 <meta charset="UTF-8">
 <title>absolute测试</title>
 <style type="text/css">
 /*设置外块*/
 div {
  width: 253px;
  padding: 10px;
  background-color: rgb(0, 0, 0, 0.3);
  position: relative; /*做位置参考*/
 }
 /*设置输入框*/
 input {
  width: 213px;
  border: 0; /*去掉文本框自带边框*/
  padding: 10px 20px;
 }
 /*设置图片*/
 img {
  position: absolute;
  right: 30px;
  top: 14px;
 }
 /*设置文字*/
 p {
  font-size: 12px;
  color: red;
  margin-top: 8px;
 }
 </style>
 </head>
 <body>
   <div>
     <input type="text" placeholder="请您输入用户名"> <img alt="图片加载失败"
       src="http://doc.canglaoshi.org/tstore_v1/images/login/yhm.png">
     <p>用户名不能为空!</p>
   </div>
 </body>
 </html>

显示效果:

CSS基础操作(七)-CSS三大特性(继承性、层叠性、优先级)、元素定位方式(static、relative、absolute)

 

上一篇:元素垂直居中


下一篇:css 基础 css引入方式