饥人谷技术博客让前端飞Web前端之路

开始学习CSS吧

2017-12-16  本文已影响64人  吴少在coding

这只是一篇让我重新认识CSS的文章,写这篇文章的时候还未搞明白原理,只知其然,不知其所以然。我的这篇文章的小demo让我信心倍增。

一、CSS(Cascading Style Sheets)是个啥?

惯例是先了解了解历史,请点击这俩链接。

二、实战

名称 作用
取色器 你猜这能是干啥的
QQ截图功能 既可以量尺错也可以取色,取色后按住 ctrl 可以看到16进制的色
word 查看字体

查看页面字体和图片的方式 还是使用开发者工具的Network 来看imagefont

查看页面字体.png
名字 代码
style 标签 在head里面写上<style> </style> 标签里面就可以写css代码了
在每个标签的style属性里面直接写 <div style=""> </div>
外部引入 在head里面写上 <link rel="stylesheet" href="./style.css ">
css import 在你的css文件开头写上@import url(./b.css)
.topNavBar{
    padding: 15px 0px 15px 0px;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
}

padding: 15px 16px 15px 16px这串代码等同于下列代码

    padding-top: 15px;
    padding-bottom: 15px;
    padding-left: 16px;
    padding-right: 16px; 

顺序是从上开始顺时针取值,上 右 下 左
position: fixed; 这是核心代码,让你的topNavBar导航栏固定在顶部,而且不占body的高度。

CSS属性 padding-bottom 是指一个元素在内边距区域(padding area)中下方的高度。内边距(padding)是指一个元素的内容和边框之间的区域。和外边距(margin)不同,内边距(padding)是不允许有负值的。内边距(padding)可以用四个值声明一个元素的四个方向的内边距(paddings),这是一种CSS缩写属性。

.clearfix::after{
    content: '';
    display: block;
    clear: both;
}

用一个计算题来验证一下,topNavBar真的脱离了文档流


为啥呢?
width的默认值是auto,块元素会继承包含块的宽度,而行内元素则会根据行内内容自适应宽度,所以行内元素设置width是没有效果的。

    <span>1</span>
    <span>2</span>

1、2之间必然出现空格的。
直观点我们可以看图


a标签修改display后之间的空隙是因为有回车.png

a{
    color: inherit;
    text-decoration: none;
}

注意:小技巧
有时候如果我们发现a标签包裹不了内部的元素可以采用以下方法

display: inline-block;

div {
  font-size: 14px;
  line-height: 20px;
  padding: 5px 0px;
}
div {
  font-size: 14px;
  line-height: 30px;
}

MDN的解释是 CSS属性position用于指定一个元素在文档中的定位方式。top right bottom left属性则决定了该元素的最终位置。
默认值是static

由此引出 脱离文档流第二种方法

 position: relative;//父级元素加上这句
 position: absolute;//子类加上这句话

例子如下 relative和absolute的例子

<div class="a">
  <div class="b">
    <div class="c"></div>
  </div>
</div>
<div class="d">
    <div class="e">
      <div class="f"></div>
    </div>
</div>
.a,.d{
  width: 200px;
  height: 200px;
  background: red;
  padding:20px;
}
.b,.e{
  width: 150px;
  height: 150px;
  background: yellow;
}
.c,.f{
  width: 100px;
  height: 100px;
  background: green;
  position: absolute;
  left: 15px;
}

.a,.e{
  position: relative;
}

position.png
相互对应,而没有对应错是因为,被不同的大div包裹住了。
两种盒子模型 作用
传统的盒子模型content-box 详见下面的解释
新型的盒子模型border-box 详见下面的解释

box-sizing属性用于更改用于计算元素宽度和高度的默认的 CSS 盒子模型

比如. 如果 .box {width: 350px}; 而且 {border: 10px solid black;} 那么在浏览器中的渲染的实际宽度将是370px;

画各种shape的好去处 CSS-Tricks shapes ,可以画出一个太极图

.span{
  display: block;
  width: 0px;
  height: 0px;
  border: 30px solid red;
  /* border-top-color: blue; */
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-left-color: black;
  border-top-width: 0px; 
}

//到最后,其实就是这么几句话
  display: block;
  width: 0px;
  height: 0px;
  border: 30px solid transpatent;
  border-left-color: black;
  border-top-width: 0px;

在这个过程中发现两点好玩的

综上所述,CSS不能按照惯性思维去随手就写,不能想当然啊。


 <script src="//at.alicdn.com/t/font_511143_hb7eteggodj6pqfr.js"></script>

2、再打开使用帮助


icon.png
<a href="#">
    <svg class="icon" aria-hidden="true">
       <use xlink:href="#icon-github"></use>
    </svg>
</a>

svg的不同属性注意一下 fill颜色属性

.userCard svg {
    width: 30px;
    height: 30px;
    fill: white;
    vertical-align: top;
}

CSS还没有深入,但是有句话我觉得该记下来,要对CSS保持一颗敬畏的心~

加油 ~~ 骚年 ~~

上一篇 下一篇

猜你喜欢

热点阅读