写在前面

今天是入门前端的day2, 小伙伴们应该已经看了一些HTML的基础和CSS的基础了,是不是遇到了很多关于CSS的问题呢。因为HTML很少有太复杂的问题,所以直接写一篇关于CSS的常见问题及解答啦~

display: none;和visibility:hidden;的区别

简单来说:

  • display: none;不会再占据空间,就跟不存在一样。
  • visibility:hidden;则只是将透明度变成0,仍然占据其空间。

inline、inline-block、block的区别

首先要明确,每一个标签都有其默认的display的属性值。例如:

  • <div>标签默认为display: block;
  • <span>标签默认为display: inline;

但是,默认值可以被重写。即你可以对<div>标签设置display: inline;,对<span>标签设置display: block;

接下来讲区别:

对于display: block;

  • 它独占一行,即不允许有其他元素在其左右。
  • 可设置宽度和高度。
  • 在未设置宽度时,其宽度会撑满。
  • 上下左右的padding和margin都会起作用(这里的起作用是指可以拉开和其他元素的距离)。

对于display: inline;

  • 它不会独占一行,可以允许其他元素在其左右。
  • 宽度和高度由内容撑开,设置width和height是无效的。
  • 左右的margin和padding可以拉开距离,但是上下的margin和padding不能拉开距离。
  • 更多需要注意的点看这里。

对于display: inline-block;

  • 它像inline和block的合体。
  • 允许其他元素在其左右。
  • 可设置宽度和高度。

重点解释一下inline的padding-top或者padding-bottom。当给inline的元素设置这两个值时,实际上是加上了padding的,在设置背景色的时候可以清楚的看到背景色作用在了padding上,但是却没有拉开和下方元素的距离。 代码如下:

<span class="block1">block1</span>
<span class="block2">block2</span>
<div class="block3">block3</div>.block1 {background-color: lightblue;width: 100px; // 无效height: 500px; //无效margin-right: 20px;margin-bottom: 20px; // 无法拉开距离padding-left: 10px;padding-bottom: 10px; // 无法拉开距离
}.block2 {display: inline-block;width: 300px; // 可以起作用background-color: lightgray;
}
.block3 {background-color: red;
}
复制代码

图片如下:

border-radius: 999px;和border-radius: 50%;的正确理解。

先看代码:

<div class="block1">block1</div>
<div class="block2">block2</div>.block1 {width: 200px;height: 100px;background-color: lightblue;border-radius: 999px;
}.block2 {width: 200px;height: 100px;background-color: lightgray;border-radius: 50%;
}复制代码

首先要注意,设置border: 999px;只是表示设置一个很大的值,事实上不用设置999px,只要理解了原理,就能找到那个临界值。

其次,设置border-radius: 999px;其实是设置了x和Y方向上的两个值,等价于border-radius: 999px/999px;


当我们设置border-raidus: 999px;时,你可以先想象在一个矩形内部画了两个巨大无比的圆,这两个圆因为太大了,所以产生了交叠的部分,于是根据文档里的这一段:

意思是: L是边长,S是border-radius设置的两个方向的值的和,如果 f = min(L / s) 小于1,则border-radius都要乘以f来缩小。拿上面的代码来说,因为最小边是100px,s为999px + 999px,所以 f = 100 / (999 + 999)是小于1的,所以,border-radius都要乘以f,得出来border-radius:999px;等价于border-radius: 50px;因此变成了block1中的跑道形状。


当我们设置border-raidus: 50%;的时候,下面这张图就足够解释了:


总结:

  • border-radius: 50px;等价于border-radius: 50px/50px;有两个方向。
  • 通常,50%的radius用的比较多,常用来设置圆形的头像,对一个正方形元素设置border-radius: 50%;即可实现。
  • 当border-radius非常大时,会产生交叠,导致要一起缩小,缩小至最短边的一半。

margin和padding的区别,何时用哪个?

区别:

  • 首先,以border为界,margin在border之外,padding在border里。

  • 其次,背景色会作用在padding上,不会作用到margin上。

  • margin在垂直方向上可能会出现合并的问题(具体可搜索margin坍塌或者外边距合并)


我的用法: 通常情况下,我会这样用:

  • 在需要拉开内部元素与父元素的距离时,在父元素上加padding
  • 在需要拉开元素和元素之间的距离时,用margin
<div class="container"><div class="son1">son1</div><div class="son2">son2</div>
</div>.container {background-color: lightblue;padding: 10px;
}
.son1 {margin-bottom: 10px;background-color: orange;
}
.son2 {background-color: lightgray;
}
复制代码

最后

这一篇先到此为止,太长了不适合阅读,因此会拆到下一篇里边。下一篇仍然是讲一些CSS的问题~

转载于:https://juejin.im/post/5bc9ab956fb9a05d27793cce

前端入门-day2(常见css问题及解答)相关推荐

  1. 前端入门教程(七)CSS属性设置

    宽和高 width属性可以为元素设置宽度. height属性可以为元素设置高度. 块级标签才能设置宽度,内联标签的宽度由内容来决定. 字体属性 文字字体 font-family可以把多个字体名称作为一 ...

  2. 前端入门: 用css设置文字样式。

    转自:微点阅读  https://www.weidianyuedu.com 经过前面的文章,相信大家已经基本了解了前端最基本的一些规则了: html搭建结构,承载内容 css则可以利用选择器,来为相应 ...

  3. 学习笔记(01):【孙伟老师UID课堂】设计师也能会的-WEB前端入门基础HTML+CSS视频教程-09综合表单标签讲解-1...

    立即学习:https://edu.csdn.net/course/play/6853/136357?utm_source=blogtoedu 8-9接不上啊  少了几节课吧?

  4. web前端入门学习 css(5)(浮动)(ps切图)(css属性书写顺序)(学成在线网站案例)

    文章目录 传统网页布局的三种方式 标准流(普通流.文档流) 浮动(为什么需要浮动?) 浮动特性 浮动元素会脱离标准流,可以与普通流的元素相重叠 如果多个盒子都设置了浮动,则它们会按照属性值一行内显示并 ...

  5. web前端入门学习 css(1)

    黑马程序员Web前端入门教程,零基础前端视频教程pink老师_html5+css3 文章目录 html局限性 css简介(层叠样式表.级联样式表.css样式表) css语法规范 css代码样式风格(推 ...

  6. html前端页面的基本骨架是,web前端入门到实战:css实现的骨架屏方案

    web前端入门到实战:css实现的骨架屏方案 发布时间:2020-08-04 01:32:03 来源:51CTO 阅读:152 作者:前端向南 优点 简单,不需要工程,不用puppeteer生成骨架d ...

  7. python和html可以同时学吗_web前端入门:css+html5+javascript同时学可以吗?

    HTML+CSS+JS是前端基础核心知识,肯定是都要学的.在web前端中,HTML是结构标准,CSS是样式标准,JS是行为标准,三者缺一不可.说的直白点,HTML就是骨架,CSS就是皮肤,JS就是灵魂 ...

  8. 转圈加载html,web前端入门到实战:纯CSS实现加载转圈样式

    web前端入门到实战:纯CSS实现加载转圈样式 发布时间:2020-05-27 18:11:33 来源:51CTO 阅读:134 作者:前端向南 不同的项目中对于等待加载时转圈圈的样式是不同的,有的是 ...

  9. 02前端入门HTML5 +CSS3+电商网页制作:CSS

    02前端入门HTML5 +CSS3+电商网页制作 0 来源 1 CSS基础 1.1 基础认识 1.1.1 css demo 1.1.1 css的层叠性 1.2 CSS引入方式 1.3 选择器 1.4 ...

最新文章

  1. QIIME 2用户文档. 16纵向和成对样本比较q2-longitudinal(2019.7)
  2. DFiddler:A HTTP Packets Listener一个简易版的手机端的Fiddler。
  3. VTK:PolyData之Silhouette
  4. ByteTrack实时多目标跟踪
  5. 深入浅出学Hive:Hive内建操作符与函数开发
  6. python 3.5安装pywin32
  7. RECT JS 由浅入深
  8. 14英寸电脑长宽多少_华为MateBook 14 2020款 14英寸轻薄笔记本王者升级
  9. 看半小时漫画,通晓计算机基础
  10. sever2008 ad用户和计算机不见,windows-server-2008 – 当我使用Powershell将用户添加到安全组时,它们不会显示在AD中...
  11. 创建CocoaPods的Framework Swift组件化之路(上)
  12. visio 2016安装教程
  13. vscode彻底卸载记录/使用经验
  14. e480Linux无法发现无线网卡,ThinkPad无线不能用无法连接无线网络的具体排查流程图解...
  15. C#百度OCR本地图片识别文字
  16. 图数据库初探——6. Nebula Graph安装和简单使用
  17. 谷歌开发者大会召开 地图服务成亮点
  18. 人工智能数学基础:泰勒(Taylor)公式
  19. 使用IntelliJ Idea新建SpringBoot项目
  20. 照片怎么转换成jpg?常见渠道一览

热门文章

  1. php用户同步,ucenter同步用户登录【转】
  2. NodeJs数据库CRUD操作
  3. ftp 上传档案到主机 OMVS
  4. php数组书写形式,php数组(array)输出的三种形式讲解
  5. dalsa工业相机8k参数_偏振光相机3——偏振应用
  6. oracle存储过程的创建与调用,Oracle 存储过程创建及调用
  7. python 读取pdf 两栏_python 读取pdf
  8. selenium java1.7_selenium-java(第一篇)
  9. 乌班图 修改ip_Ubuntu临时和永久修改ip地址掩码和网关
  10. 正则表达式中或关系表示及查找英文字母最后一个