发表于: 2019-06-15 21:04:00

1 859


今天完成了什么:

完成如何学习一栏和移动端布局适配。


遇到了什么问题:

“如何学习”花了很长时间去调试和匹配响应式布局的样式。最后定了

col-lg-3 col-md-6 col-12这三种布局,琢磨了我一天的时间

并在不同的分辨率下

@media screen and (max-width:768px)

@media screen and (max-width:992px)

这倆东西理解了好久才勉强会用,布局好了网页的,缩小分辨率又不一样的样式调试起来真的是头疼,最后用

用 visibility: hidden;代替display:none来使用,如果用display的话我一开始是弹性布局等分对齐的,用它的话会出现间隙过大,样式不美观,所以用visibility来代替,因为它哪怕消失了也还保留它的位置这样就美观一些。



收获了什么

今天做适配的时候查了下各单位的在移动端的相关情况,css中仅仅通过px作为长度和宽度的单位,造成的结果就是无法通过一套样式来实现各端的自适应,总之就是兼容性不好。



max--width: 400px:如果屏幕宽度小于400像素则会怎么样;

@media="screen and (min-width: 400px) and (max-width: 600px)"如果屏幕宽度在400像素到600像素之间则怎么样


相比之下百分比计算也会困难,比如当浏览器的宽度或者高度发生变化时,通过百分比单位,通过百分比单位可以使得浏览器中的组件的宽和高随着浏览器的变化而变化,从而实现响应式的效果。

1,子元素height和width的百分比

子元素的height或width中使用百分比,是相对于子元素的直接父元素,width相对于父元素的width,height相对于父元素的height

2,top和bottom 、left和right

子元素的top和bottom如果设置百分比,则相对于直接非static定位(默认定位)的父元素的高度,同样

子元素的left和right如果设置百分比,则相对于直接非static定位(默认定位的)父元素的宽度。


3,padding

子元素的padding如果设置百分比,不论是垂直方向或者是水平方向,都相对于直接父亲元素的width,而与父元素的height无关。

4,margin


跟padding一样,margin也是如此,子元素的margin如果设置成百分比,不论是垂直方向还是水平方向,都相对于直接父元素的width。


5,border-radius

border-radius不一样,如果设置border-radius为百分比,则是相对于自身的宽度,


如果我们要定义一个元素的宽度和高度,按照设计稿,必须换算成百分比单位。 各个属性中如果使用百分比,相对父元素的属性并不是唯一的。

比如width和height相对于父元素的width和height,而margin、padding不管垂直还是水平方向都相对比父元素的宽度、border-radius则是相对于元素自身等等,造成我们使用百分比单位容易使布局问题变得复杂。


 rem来实现响应式布局

rem单位都是相对于根元素html的font-size来决定大小的,根元素的font-size相当于提供了一个基准,当页面的size发生变化时,只需要改变font-size的值,那么以rem为固定单位的元素的大小也会发生响应的变化。 因此,如果通过rem来实现响应式的布局,只需要根据视图容器的大小,动态的改变font-size即可。

  1.  rem 布局的缺点

通过rem单位,可以实现响应式的布局,特别是引入相应的postcss相关插件,免去了设计稿中的px到rem的计算。rem单位在国外的一些网站也有使用,这里所说的rem来实现布局的缺点,或者说是小缺陷是:

在响应式布局中,必须通过js来动态控制根元素font-size的大小。也就是说css样式和js代码有一定的耦合性。且必须将改变font-size的代码放在css样式之前。


了解了下

visibility有两个不同的作用

用于隐藏表格的行和列

用于在不触发布局的情况下隐藏元素

1.visible

 没什么好说的,就是在界面上显示。

2.hidden

 让元素在见面上不可视,但保留元素原来占有的位置。

3.collapse

 用于表格子元素(如tr,tbody,col,colgroup)时效果和display:none一样,用于其他元素上时则效果与visibility:hidden一样。不过由于各浏览器实现效果均有出入,因此一般不会使用这个值。

4.inherit

 继承父元素的visibility值。




明天计划:

继续完成任务


返回列表 返回列表
评论

    分享到