JavaScript中标签的居中问题

    作为学习前端的菜鸟,写实践项目的时候总会出现各种bug。之前写作业,做一个网站的页面,标签元素居中这样的操作总会出错,于是下定决心写完作业后一定好好把这个问题解决。于是就写下了这篇小文章,望路过的大神指出错误,欢迎大家留言讨论。有错轻喷,谢谢!


首先对标签进行分类

block(块级元素):

div p h1-h6 ul-li ol-li address table tr form

inline(行级元素):

span    strong    em    del   a   b   i

inline-block(行级块元素):

img    input   select

margin:0 auto;处理居中问题

 对标签进行样式设置的时候,块元素是最好操作的,设置什么属性,就会显示出来。所以如果不确定标签属于哪一种类型,最好的在CSS样式表里面加上一句display:block。那么你设置的所有样式就会显示出来了。

position居中定位

position定位有三个值可以填写:absolute,relative,fixed.

absolute: 相对于离它最近的有定位的父级进行定位,若没有则相对于浏览器窗口定位,并且会覆盖在它后面的元素。

relative: 相对于它出生的位置进行移动,而且不会覆盖它后面没有absolute定位的元素。

fixed: 只相对于浏览器窗口定位。

下面是用position定位的代码截图:

图片发自简书App

效果如下图所示,absolute和relative一样。

图片发自简书App

原理如下图所示:先到1位置,再到2位置

图片发自简书App

不过若你同时把relative和margin:0 auto;打开代码如下图

图片发自简书App

效果又会不一样,如下图:图中黄色区域的宽度和淡紫色div的宽度一样,都是300px。蓝色的span首先定位left:50%,top:50%,然后margin:0 auto的覆盖导致margin-left和margin-top失去作用。蓝色的span依然相信自己还在div里,执行margin:0 auto;左右自动调节距离居中。

图片发自简书App
所以在进行居中定位的时候,为防止出错一定要把display:block加上,要么用margin:0 auto自动居中,要么用position:absolute,因为absolute绝对定位可以覆盖其他的居中方式。如果用position:relative,就一定要把margin:0 auto去掉。


欢迎留言讨论!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,696评论 1 92
  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 12,543评论 3 30
  • 一 外部式css样式 (也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css...
    KunMitnic阅读 4,605评论 0 1
  • 本课来自http://www.imooc.com/learn/9请不要用作商业用途。 HTML5 HTML介绍 H...
    PYLON阅读 8,617评论 0 5
  • “须菩提,于意云何?如来有肉眼不?”“如是,世尊,如来有肉眼。” “须菩提,于意云何?如来有天眼不?”“如是,世尊...
    木子哲学阅读 2,256评论 0 1

友情链接更多精彩内容