为什么在加载部分先设置图标和文字水平对齐,再居中对齐?而不是按照默认的水平对齐?

来源:3-1 Loading组件

慕婉清9255496

2020-01-17 13:54:30

http://img.mukewang.com/climg/5e214c1109fbbba103690220.jpg


写回答

3回答

好帮手慕星星

2020-01-17

同学你好,问题解答如下:

1、老师明白同学的想法,但是默认情况下虽然是水平的,但是位置不对

http://img.mukewang.com/climg/5e217c2709f1e70105810348.jpg

效果如下

http://img.mukewang.com/climg/5e217b1709d2cf7503790195.jpg

因为这时候没有任何的样式,所以默认在左上角,我们仍然是需要调整位置来显示到中间位置。

课程中使用flex-center方法的目的是为了让元素使用flex布局来实现在水平垂直居中位置显示(同学也可以使用其它方法),可以不传参数看看效果,还是水平的:

http://img.mukewang.com/climg/5e217cd909129e7106830493.jpg

http://img.mukewang.com/climg/5e217ce409db76fb01870040.jpg

但是课程中要的是上下垂直位置显示,所以传的参数是column:

http://img.mukewang.com/climg/5e217d24093e1c4f06480455.jpghttp://img.mukewang.com/climg/5e217d2d090236b901590050.jpg

2、另外课程中还设置了上间距,将加载图标与文字之间的距离拉开了:

http://img.mukewang.com/climg/5e217d8a0938945f05540087.jpg

http://img.mukewang.com/climg/5e217d8f0926cd1e01270063.jpg

但是当flex-center方法不传参数的时候效果上会有一点问题

http://img.mukewang.com/climg/5e217db50977a19406120491.jpg

http://img.mukewang.com/climg/5e217dbc094755d001660043.jpg

没有对齐居中,因为文字有上间距6px,所以课程中添加了动态类名mine-loading-inline

  • 如果图片和文字上下垂直居中显示的时候,mine-loading-inline不生效,这部分无作用

    http://img.mukewang.com/climg/5e217e140924900c05560204.jpg

    图片和文字之间有上下间距6px

  • 如果图片和文字水平居中显示的时候,mine-loading-inline生效,就会去掉上下间距6px。

可能会有一点绕,如果同学不想要这个6px样式,可以不设置,也不使用mine-loading-inline动态类,那么调用flex-center的方法就是传参和不传参的问题。

3、课程中其实最终不是通过控制flex-center传参实现位置变化的,是通过inline这个动态类,在slider.vue中使用loading组件时,如果传了inline,那么值就是true,就会启用mine-loading-inline动态类,水平显示;如果没有传参,默认值为false,就不会启动mine-loading-inline动态类,上下垂直显示:

http://img.mukewang.com/climg/5e217f26095c79c107160519.jpg

同学可以再理解下,祝学习愉快!

0

慕婉清9255496

提问者

2020-01-17

首先默认情况下是水平的,然后再设置垂直居中,最后通过动态又改为水平居中,可以直接使用默认?

0

好帮手慕星星

2020-01-17

同学你好,flex-center这个方法需要通过传入参数设置主轴是水平方向还是垂直方向:

http://img.mukewang.com/climg/5e2160c009713d5604790155.jpg

并且这个方法中还设置了元素为flex布局,主轴以及交叉轴上都是居中对齐的。代码中调用flex-center方法传入的参数是column,也就是主轴是垂直方向:

http://img.mukewang.com/climg/5e21610e092b9a3304060048.jpg

这样显示的

http://img.mukewang.com/climg/5e21612c09ee0ee503770189.jpg

下面这部分样式的设置取决于.mine-loading-inline 这个类名是否存在

http://img.mukewang.com/climg/5e21614009ba1a0c05840206.jpg

这个类名是动态设置的:

http://img.mukewang.com/climg/5e21615e09102be509200641.jpg

默认为false,也就是.mine-loading-inline 这个类名不设置,下面的样式不会生效,主轴也不会改变。如果inline的值改为true,效果就是水平对齐了,自己可以测试下。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 10739 问题

查看课程