CSS 百分网手机站

css网页布局用Margin还是用Padding(2)

时间:2017-10-04 20:26:42 CSS 我要投稿

css网页布局用Margin还是用Padding

  <p class="secondChild">我是secondChild,我要和楼上隔开点的距离。恩,能与底边有点呼吸距离就更好了。</p>

  </p>

  </body>

  </html>

  我是firstChild,我只是想和我的父元素隔开点距离,这样看起来舒服

  我是secondChild,我要和楼上隔开点的距离。恩,能与底边有点呼吸距离就更好了。

  我们来看看这么写的好处吧:

  1.外观依旧良好,结构清晰也没有破坏布局。

  2.不会产生垂直外边距合并这样的问题。

  3.书写规范、代码量减少、重用性好。

  我们可以看到在middle_2中去除了不需要的border-top,改为更为实用的padding:20px 0,让middle_2中的内容有了足够的“呼吸空间”,以后还可以随时随地修改这个padding,让内容文字的“呼吸空间”增大或者缩小,随时随地只修改一个middle_2的padding就能搞定所有包裹元素与内部内容的规划。

  请注意这里是父元素应用padding,使得与其内容产生间隙,这是符合我们翻译为“补白”精髓(所以我一直喜欢称padding为“补白”而不是内边距),而padding也恰恰是在这儿最能体检他的价值。这个例子把第一个元素的margin-top去除,在父元素中应用padding。反过来,你会想,既然margin-top不好用,那么我第一个元素用padding-top不是也能达到效果么。恭喜你,你已经前进了一步了,的确使用padding-top即让第一元素与外包裹元素产生了呼吸距离,而且也不会出现所谓的垂直外边距重叠问题, 但是我依旧不推荐你这么做。为什么呢?我们来设想这么一个情况吧,假如有一天,你这个模块要产生变动,新需求要删除这个firstChild,替换为otherChild,会怎么样呢?

  新的需求要求我们新加一个otherChild,替换原来的firstChild:

  代码如下复制代码

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <title>用Margin还是用Padding</title>

  <style>

  .top{width:160px; height:50px; background:#ccf;}

  .middle_3{width:160px; background:#cfc;}

  .middle_3 .otherChild{font-weight:bold; font-style: italic;}

  .middle_3 .secondChild{margin-top:10px;}

  </style>

  </head>

  <body>

  <p class="top"></p>

  <p class="middle_3">

  <p class="otherChild">我是新来的otherChild,我也想和我的父元素隔开点距离,这样看起来舒服,咦?!为什么我是在顶部?</p>

  <p class="secondChild">我是secondChild,我要和楼上隔开点的距离。恩,能与底边有点呼吸距离就更好了。</p>

  </p>

  </body>

  </html>

  我是新来的otherChild,我也想和我的父元素隔开点距离,这样看起来舒服,咦?!为什么我是在顶部?

  我是secondChild,我要和楼上隔开点的距离。恩,能与底边有点呼吸距离就更好了。

  发现问题了么?如果你把原先的firstChild给删除掉了,新来的元素根本就没有定义上边距或者上补白,那么他就会自然顶在头部,不是理想的效果。的确,你可以为了他新写一个css来让他距离头部多一点空隙,但是你该怎么写?直接改otherChild吗?如果其他页面里面也有otherChild那么你会把其他地方的otherChild布局打乱。恩,那么我用.middle_3 .otherChild{padding-top:10px;}怎么样可以吧。恩,可以可以,可是你不觉得这么累吗?每次修改,都要增加这一个多余的代码就为了简简单单的隔开点距离,久而久之,你的css文件代码会臃肿不堪,可移植性大大削弱。

  每次开发的时候我一直对自己讲,你写的代码总有一天会被别的开发人员所替换、修改、更新。而一个优秀的前端写出的css不但在现在结构坚固并且还能为日后的开发人员提供方便。修改我的代码,改前改后的式样位置都一样,让之后的开发人员根本上避免接触到再次“修复”开发的机会,那才是一名真正前端的追求。这里你把包裹的p类似“封装”好一个环境,而且这个p内已经留有足够的内容的“呼吸空间”,你只需要改内容,内容所要考虑到得位置边距问题,外包的p元素早已经帮你预留好了,你用起来方便,今后改起来也方便,直接找到middle修改padding即可。

  To margin or to be padding, that is the question.

  所谓大道万千,运用之妙存乎一心。该用margin的时候就大胆的用他,该用padding也不用退缩不前,实战中累积出来的经验往往是最有用的,而当你不确定是用margin好还是用padding,请在看看这个原则吧,或许你会有一个自己的答案。

【css网页布局用Margin还是用Padding】相关文章:

1.CSS高级布局技巧

2.美化网页段落排版的css教程

3.关于CSS网页样式设计方法

4.DIV+CSS布局和TABLE布局的优缺点

5.关于网页图片属性的CSS教程

6.网页设计布局技巧

7.CSS样式表代码布局基础教程

8.jQuery css方法动态修改CSS属性