疑问解答

重要:

  • 如果有浮动,那么父元素必须清除浮动
  • 有inline-block,需要注意两个inline-block元素之间的间隙,可通过设置他们父元素的font-size:0 来清除
  • 有绝对定位的时候,那么必须为其找一个参考点,该参考点的position为relative或static
  • 当position:relative时,该元素原来所占的空间仍保留(注意理解这句话, 也就是说虽然它定位到其他地方了,但是其原来所占的空间仍然保留在页面上)
  1. box-sizing属性
    主要用于计算盒模型时width和height值的确定
    可用常用的值:
  • box-sizing: content-box; 默认值
    表示设置的width 为content的宽,整个盒模型的
    width = margin-left + padding-left + content + padding-right + margin-right;
  • box-sizing: border-box
    表示设置的width为整个盒模型的宽,而不是content的宽
    代码:
//  html:
<div class="wrap"></div>
// css
.wrap{
  width: 100px;
  height: 100px;
  background-color: pink;
  border: 20px solid ;
  /* box-sizing: border-box; */
}

如上: 默认情况下(不添加box-sizing:border-box),wrap盒模型的总宽度为:100px + 20px * 2 = 140px;
如果添加上box-sizing:border-box; 那么wrap盒模型的总宽度为100px;

  1. **行内元素之间的间隔 **
    因为写HTML代码时,总是将一个标签占用一行的位置,因此两个行内元素之间在页面显示上会有一个空格,这个主要是由于写html时的换行符导致的,可以给行内元素的父元素添加font-size:0;
    如:
//------html----------
<div class="wrap">
      <span class="word1">ABC</span>
      <span class="word2">张杰</span>
</div>
//------css-----------
.wrap{
  font-size: 0;
}
span{
  font-size: 12px;
  background: pink;
}
  1. 使用inline-block后,两个元素之间会有间隙
    解决方法与行内元素之间的间隙的解决方法类似,在父元素上设置
    font-sizing: 0

  2. vertical-align的使用
    http://www.zhangxinxu.com/wordpress/2015/08/css-deep-understand-vertical-align-and-line-height/

  3. BFC
    其主要作用是相当于一个隔离框,生成一个边界,可以解决外边距合并问题,因此其也用于清除浮动,具体还得查看详细资料,以便确定其作用

  4. z-index的使用
    参考:关于z-index 那些你不知道的事

  5. clear:right 和 clear: left的含义
    clear: right;指不允许右侧有浮动
    clear: left; 指不允许左侧有浮动
    记住:float是魔鬼,会影响相邻元素;clear是小白,只对自身有影响,对相邻元素不会造成影响
    参考:准确理解CSS clear:left/right的含义及实际用途

  6. 行内元素设置宽高、内边距、外边距和边框
    行内元素需要分成两类来进行说明,行内非替换元素行内替换元素

  • 行内替换元素
    设置宽高、内边距、外边距和边框,均有效,也就是能够在文档中占有一席之地——对上下文有影响
  • 行内非替换元素
    为行内非替换元素设置水平内边距、水平外边距、水平边框均是有效的,可以改变其宽度。
    为行内元素非替换元素设置宽、高、垂直内边距、垂直外边距、垂直边框均不会影响行内框的高度(行高),也就是说设置这些属性后,它们在文档中所占用的位置也不会增加。
    这里面需要注意:为行内非替换元素设置垂直内边距,然后再设置背景,可以发现背景延伸到了内边距,虽然产生这样的效果,但是这个内边距对它垂直方向的元素无影响,也就是对行高没有影响。
    增加行内非替换元素高度的方法:添加行高
  1. 对于float布局和flex布局的选择
    因为flex布局在IE11以上才能使用,可能存在兼容性问题,如果产品时移动端的,则优先使用flex布局,如果大部分情况下载PC上使用,则使用float布局,兼容性要好一些

  2. 浏览器是在什么时候下载js文件的?又是在什么时候执行js文件的?整个流程是怎样的?如果使用defer、async或者调整js的顺序,那对其下载和执行有什么影响?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 4,716评论 0 1
  • 1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素? 行内元素:和有他元素都在一行上,高度、行高及外...
    极乐君阅读 7,206评论 0 20
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 10,103评论 0 26
  • UI viewcontroller的一些方法的说明viewDidLoad,viewWillDisappear, v...
    b485c88ab697阅读 8,897评论 0 22