CSS的奇怪之处

1.各属性之间互相影响

a.margin与border

后边会详细说,关于margin合并的问题;

b.小圆点与display

display的默认样式为display: list-item,如果我们修改为display: inline等会改变样式,也就是小圆点消失了。

<style>
    li{
      display: inline;
    }
  </style>
<ul>
  <li>项目1</li>
  <li>项目2</li>
  <li>项目3</li>
  <li>项目4</li>
</ul>
效果图
c.position: absolute与display:inline

先看代码,我们指定子元素为inline。

<style>
    .parent{
      background: green;
      height: 100px;
      position: relative;
    }
    .child{
      display:inline;
      border:1px solid red;
      position: absolute;
    }
  </style>
<div class="parent">
  <div class="child">内联样式</div>
</div>
效果图

我们查看计算出来的属性:


浏览器计算结果

2.各元素之间互相影响

a. position与transform

我们将子元素相对视口定位,看代码:

<style>
    .parent{
      background: green;
      height: 100px;
      position: relative;
      /* transform: scale(0.9); */
    }
    .child{
      position: fixed;
      border:1px solid red;
      bottom:0;
      left:0;
    }
  </style>
<div class="parent">
  <div class="child">内联样式</div>
</div>
正常

然而当我们在父元素添加transform,将父元素做一个变形的时候:


父元素添加了transform
b.float影响inline元素

先看效果:


效果图

注意“你好”的位置。也就是说,不会影响div,但是会影响里边的文字。

<style>
    .parent{
      background: green;
      height: 100px;
    }
    .float{
      height: 100px;
      width: 70px;
      background: rgba(255,0,0,0.8);
      float: left;
      
    }
    .child{
      width: 300px;
      height: 50px;
      background: white;
    }
  </style>
<div class="parent">
  <div class="float">浮动元素</div>
  <div class="child">你好</div>
</div>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,809评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 4,543评论 5 15
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,748评论 1 45
  • 嗯。
    万能的小李阅读 257评论 0 0
  • 生活不会因为某个节点而变得与众不同 未来的幸运 都是过往努力的积攒
    重归于好阅读 244评论 2 2