美文网首页知识点jurengu学习笔记收藏HTML5
这些年,我们前端菜鸟遇到的坑(1)--CSS易错点--float

这些年,我们前端菜鸟遇到的坑(1)--CSS易错点--float

作者: 韩宝亿 | 来源:发表于2016-06-03 18:03 被阅读1633次

虽然说标题是说我们遇到的坑,其实是像我这样的前端菜鸟只掌握了某些知识点的表面,没有去深究里面的东西所导致的坑。这周我在做移动页面的时候就遇到了很多这样的情况,比如float,opacity,z-index等等,下面我就简单归纳一下,避免下次再错。闲话少说,直接上代码!

一、float需要注意浮动元素的高度不一样的问题

浮动虽然看起来很简单,但是稍微不注意就会用错,而且如果不知道原理的话很难找到原因,例如:五个li元素浮动,我们要的效果应该是这样


Paste_Image.png Paste_Image.png

可是现实问题确实这样:紫色的li调到下面去了。


Paste_Image.png

也许大部分人就像我一样只记得浮动会让父元素塌陷,无法撑开高度这个特性,可是我们却忘了还有一个重要的特性:

Paste_Image.png

因此,蓝色的li触碰到了蛋白质那个li,导致它被卡在那里,紫色自然被移到下一行

Paste_Image.png

解决办法,固定高度

Paste_Image.png

二、透明度

  • 比如一个块级元素你使用了opacity来做透明度的话,它会使子元素跟着也透明,即使子元素设置不透明。同样的,上代码
Paste_Image.png Paste_Image.png

解决办法是使用rgba来做透明度,它将不会影响其子元素(完美)!

Paste_Image.png Paste_Image.png

三、动态rem适配移动端

我们知道移动端的像素转换非常复杂难算,以前大多数人都会使用媒体查询来适配不同的设备屏幕宽,然后使用em做单位,这样的不足之处是你需要写很多媒体查询,很繁琐,而且em根据的是父元素的font-size。而rem是相对于根元素来配备,能方便很多。PS:忘掉font-size吧,一切以屏幕的宽度为基准,我保证你会非常爽!

Paste_Image.png

width/10是为了保证10rem占宽满屏,不除的话,1rem就等于屏幕宽度了。然后我们只需要动态加上上面的js代码,就不需要做各种媒体查询就能适配各种设备宽度。

Paste_Image.png Paste_Image.png

接下来就是通过视觉稿里量到的尺寸来适配rem,比如设计稿的屏幕宽是1000px 元素宽为500px,你只需要10/1000*500就能得到多少rem了,是不是很easy。这里需要说明一下10是10rem,因为这样方便计算。

  • 动态rem还有一个好处是完美实现1像素边框,我这里就不再描述了,大家可以去谷歌一下

四、块级元素垂直居中问题

块级元素垂直居然有很多方法,我简单说两个:

Paste_Image.png

上图代码显示用绝对定位,top,left50%,然后负margin宽高的一半,light-height为元素的高就能实现垂直居中。相信大家都知道,但是有个问题,如果元素的宽高变了,那我们也要手动的去改margin。这里有一个更方便的办法,如果不考虑IE低版本的浏览器的情况下,可以用translate来实现,这样无论元素怎么变,都不会有影响。

Paste_Image.png

还有一种方案可选,设置display:table-cell; vertical-align:middle;大家可以去查查这个属性的用法

相关文章

  • 这些年,我们前端菜鸟遇到的坑(1)--CSS易错点--float

    虽然说标题是说我们遇到的坑,其实是像我这样的前端菜鸟只掌握了某些知识点的表面,没有去深究里面的东西所导致的坑。这周...

  • 【前端】CSS : float

    介绍 float属性指定一个元素应沿其容器的左侧或右侧放置,允许文本和内联元素环绕它。 注:当一个元素浮动之后,从...

  • CSS中的float定位技术在iOS上的实现

    CSS中的float属性简介 几乎所有会WEB前端开发的同学都知道CSS中有一个float属性用于实现HTML元素...

  • 浮动特性以及部分清浮动方法|网站前端开发

    网站前端开发_前端开发者丨CSS https://www.rokub.com float浮动的特性: 1、块在一排...

  • 总结CSS基础中的一些小坑

    CSS虽然很有趣,入门也容易,但对于前端菜鸟、初学者来说,还是有一些小坑是无法避免的,这些小坑相对而言更需要去积累...

  • 这些年我们遇到的坑1

    今天和好久不见的美女张见面,看到她容颜焕发,获知最近三个月开启新项目共享美院,介绍人是她的新男朋友,转述过程中新男...

  • Test10

    引用文章: 那些年我们一起清除过的浮动 CSS浮动float详解 Clear Float CSS float浮动的...

  • 微信硬件蓝牙api(前端开发)

    本文仅介绍微信硬件蓝牙开发前端部分基本流程和可能遇到的坑 所需材料: 基本的前端三件套(HTML,CSS,JS) ...

  • weex 开发遇到的坑

    坑太多且苹果审核易被拒,目前已放弃使用!!! (一前端开发者搞weex遇到的坑) ~ 写界面最好 Android ...

  • 前端工具

    在日常的前端开发中,我们会遇到 LESS/SASS 编译、CSS 前缀自动补全 、CSS 压缩、 图片压缩、JS ...

网友评论

  • IT之旅:那个垂直居中的,height=line-height不可以吗?
    韩宝亿:@IT之旅 line-height是行内元素垂直居
    韩宝亿:@IT之旅 line-height是行内元素垂直居
  • 饥人谷_hak:总结的很好
  • 洛_小七:总结的很棒,很实用
    韩宝亿:@努力撑起一片天空 谢谢
  • 8aee7c1684fc:总结的很好,希望这个系列继续出新文章
  • 饥人谷_xxxxx:谢谢作者!
    韩宝亿:@饥人谷_Mcavoy 不客气:smile:
  • love2013:多分享移动端的
    韩宝亿:@love2013 问题是我就做过这一次移动端
  • love2013:移动端是我的弱项!
  • 麦子同学:很棒 解决了我的问题 我是移动端 小白 :smiley:
    韩宝亿:@488c95f20235 嘿嘿,我是前端菜鸟,加油哦
  • 九号咖啡屋:期待后续呀
    韩宝亿:@Dexc 你们的评论就是我的动力:smile:
  • 九号咖啡屋:这个不错 我要收藏了
  • 0ec02b597a36:第一部分的解决办法好像写错了,应该是固定高度
    韩宝亿:@张新望zxw 恩,宽度写成高度了,谢谢指正!
    韩宝亿:@张新望zxw 是的啊,我下面是固定高度啊,没认真看吧兄弟,我只写了一种解决方式
  • html_dingling:实用的好文,特别是适配移动端的部分,只是第一个浮动问题可以设置最小高度min-height比较灵活,解决方案也是有很多的,目前主流是clear:after;(清除浮动),
    韩宝亿:@html_dingling 谢谢反馈,min-height我还没用过,但是这种情况跟清楚浮动没有关系,它只是高度被卡住了,是另一个方面

本文标题:这些年,我们前端菜鸟遇到的坑(1)--CSS易错点--float

本文链接:https://www.haomeiwen.com/subject/nlzkdttx.html