CSS

作者: 陈泽chanzed | 来源:发表于2018-08-15 01:20 被阅读0次

一、 引入CSS的三种方式

  1. 在HTML标签内加style属性
<h1 style="background-color: grey; text-align:center;">直接在html标签内加style属性</h1>
  1. 运用style标签
<style>
  h1{
    background-color: grey;
    text-align: center;
  }
</style>
  1. link标签引入
/*style.css文件:*/
/*-------------------------*/
  h1{
    background-color: grey;
    text-align: center;
  }
<!DOCTYPE html>
<html lang="en">
<head>
  <!-- 引入style.css文件-->
  <link rel="stylesheet" href="./style.css">
</head>
<body>
    <h1>你的名字</h1>
</body>
</html>
  1. 在CSS文件内用@import url(路径);引入其他CSS文件
/*   a.css文件  */
body{
  background-color: grey;
}
/*-------------------------------------*/
/*b.css文件*/
@import url(./a.css)
h1{
  color: red;
  text-align: center;
}
<!DOCTYPE html>
<html lang="en">
<head>
  <!-- 引入b.css文件,浏览器发现b.css文件中导入了a.css,于是会再次请求a.css文件-->
  <link rel="stylesheet" href="./b.css">
</head>
<body>
    <h1>你的名字</h1>
</body>
</html>

二、浮动与清除浮动

创建一个chearfix类,代码如下,要浮动的元素加上float属性,并在要浮动元素的父元素上加上这个类。

<style>
li{
  /* float会导致块元素收缩*/
  float: left;
}
.clearfix::after{
    content: "";
    display: block;
    clear: both;
}
</style>
<ul class="clearfix">
   <li><a href="#">ABOUT</a></li>
   <li><a href="#">SKILLS</a></li>
   <li><a href="#">EXPERIENCE</a></li>
</ul>
坑:
<style>
dl dt,
dl dd{
    float: left;
    /* height: 19px; */
}
dl dt{
    width: 50%;
}
dl dd{
    width: 50%;
}
</style>
<dl class="clearfix" style="border: 1px solid red"> 
    <dt>年龄</dt>
    <dd>18</dd>
    <dt>所在城市</dt>
    <dd>杭州</dd>
    <dt>邮箱</dt>
    <dd>chenzedcz@gmail.com</dd>
    <dt>手机</dt>
    <dd>12345678901</dd> 
</dl>

由于没有指定高度,高度由块元素中的文件流决定,也即本例中的字体高度来决定。由于数字与文字的字体高度不一致,导致每个块元素的高度不一致,所以不能整齐排列。


image.png

三、chrome默认字体像素为16px

四、高度的决定

  1. div高度由其内部文档流元素的高度总和决定;

    文档流:文档内元素的流动方向,内联元素从左往右流,空间不够另起一行继续流,如果内联元素内是一个单词,这个单词默认是不会被截断的,要用word-break属性来控制其是否可以被截断。块级元素从上往下流,每一个块级元素都会另起一行

  2. span的高度由文字的像素以及字体的建议行高来决定的。font-size是指一个字体的最高点和最低点之间的像素。

五、脱离文档流

  1. position: fixed;:脱离文档流的块元素宽度会自动收缩,不会占满整个屏幕。可以加上width: 100%;这个属性来使这个块元素铺满,但是这会出现问题,元素的宽度加上boder、padding会超过其父元素的宽度。解决这个问题可以在这个块级元素上再嵌套一个div,使其成为div的子元素。
    注意:在开发中一般不要写width: 100%;以及height: xxxpx;
  2. 绝对定位
    在子元素上写:position: absolute;
    在父元素上写:position: relative;

六、div水平居中

div{
  margin-left: auto;
  margin-right: auto;
}

七、用CSS画三角形

//原理是把span的宽高都设置为0px,并将三个边框变为透明
<style>
  .triangle{
    border: 10px solid transparent;
    width: 0px;
    display: block;
    border-top-width: 0px;
    border-left-color: green;
}
</style>

<span class="triangle"></span>

八、SVG

svg{
  width:100px;
  height: 100%;
  fill: white;  /*颜色*/

SVG图标上下空间不一致,用vertical-align: top解决。

image.png

九、display: inlinedisplay: inline-block区别

https://stackoverflow.com/questions/8969381/what-is-the-difference-between-display-inline-and-display-inline-block

  • inline: only margin-left, margin-right, padding-left, padding-right
  • inline-block: margin, padding, height, width

A visual answer
Imagine a <span> element inside a <div>. If you give the <span> element a height of 100px and a red border for example, it will look like this with

display: inline

display: inline

display: inline-block

display: inline-block

display: block

enter image description here

Code: http://jsfiddle.net/Mta2b/

Elements with display:inline-block are like display:inline elements, but they can have a widthand a height. That means that you can use an inline-block element as a block while flowing it within text or other elements.

Difference of supported styles as summary:

相关文章

网友评论

      本文标题:CSS

      本文链接:https://www.haomeiwen.com/subject/inpjbftx.html