writing_mode:vertical-lr和flex-direction布局以及蒙古文展示

蒙古文是从上到下,从左到右书写的,所以一般布局中,div布局要横向排列。这时我一般都是父div为flex-direction:row

.category_1{
            background: blueviolet;
        }
        
.category_2{
     background: #fd0101;
 }
 
 .detail{
     display: inline-block;
 }
 
.flex_test{
            display: flex;
            flex-direction: row;
            height: 100%;
}

<div class="flex_test">
        <div class="category_1">
            <div class="detail">
                mongol
            </div>
            <div class="detail">
                mongol
            </div>
            <div class="detail">
                mongol
            </div>
        </div>

        <div class="category_2">
            <div class="detail">
                mongol
            </div>
            <div class="detail">
                mongol
            </div>
            <div class="detail">
                mongol
            </div>
        </div>
    </div>

蒙古文横向排列

这代码对于横向排列没有问题。但是为了竖向显示蒙古文加入writing-mode的话引起二级div会像默认块级元素一样竖向排列;

.flex_test{
            display: flex;
            flex-direction: row;
            height: 100%;
            writing-mode: vertical-lr;
}

这时效果会变成
加入writingmode
可以看出来蒙古文是可以书香显示,但是二级元素category1和2变了原来横向排列的格式,变成了竖向排列了。

因为我的需求是在二级div即category类里动态添加detail类的inline-block div。

在最外部为flex布局下,为了完成我的需求,我把writing-mode移到内部。
这里有2种思路,
一是,最内部detail里加入wrting-mode,可以自动撑开外部父div,但是detai虽然为inline-block但占据一个列,并会靠在下方不是我要的需求。
请添加图片描述

二是,category里加入wrting-mode,但是这会导致新增加的子div不会自动撑开外部category的div。
请添加图片描述
到了这里,死活都满足不了需求。
想过通过计算宽度等动态改变父元素的宽度。可是太麻烦了。

后面随便调试了一下。

终于看出曙光了。

最外部布局不加入flex,直接writing-mode:vertical-lr;

最外部父元素加一句writing-mode:vertical-lr;

这样不仅解决了,二级div横向排列,还解决了内部动态添加子div时自动撑开的问题。
请添加图片描述

即:

.flex_test{
            height: 100%;
            writing-mode: vertical-lr;
}

想放弃过,可是最后总是碰巧能解决。这说明有时候再坚持一下就可以了。。祝好运!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码定义了一个名为`.part3`的CSS类,以及它的子元素的样式。以下是代码中的一些关键部分: - `.part3{}`:设置一个相对定位的容器,具有指定的高度、背景颜色和文本颜色。 - `.part3 h1{}`:设置标题的样式,包括文本颜色、内边距、文本对齐方式和字体大小。 - `.part3 .mid{}`:定义一个相对定位的元素,具有指定的偏移值。 - `.part3 .blockLeft{}`:设置一个绝对定位的元素,具有指定的位置、尺寸、颜色和文本样式。其中`writing-mode:vertical-lr;`让文本垂直显示。 - `.part3 .mainFrame{}`:设置一个绝对定位的元素,具有指定的位置和尺寸,并具有白色背景。 - `.part3 .mainFrameTitle ul li{}`:设置一个列表项的样式,包括浮动、行高、内边距和字体大小。其中`.part3 .mainFrameTitle ul li a{}`设置列表项中链接的颜色。 - `.part3 .mainFrameTitle ul li:nth-child(1){}`:选择第一个列表项,并设置其样式。 - `.part3 .mainFrame img{}`:设置一个绝对定位的图片,具有指定的位置和尺寸。 - `.part3 .content{}`:设置一个绝对定位的元素,具有指定的位置、尺寸、颜色和行高。 - `.part3 .item li{}`:设置一个列表项的样式,包括颜色、浮动、内边距和字体大小。 这段代码看起来是用于创建网页中的一个部分,其中包含标题、图像、文本和列表等元素,并定义了它们的样式和布局
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值