我有一个项目,其中一些页面的标题有大字体.标题是动态的,可以是一行或3-4行.出于美学原因,我希望标题既居中,又排列线条,以便最长(最宽)的线条位于底部,最短的线条位于顶部.就像 pyramid 的形状.

我不知道这在纯CSS中是否可行,或者我应该如何解决这个问题?

有什么建议吗?:-)

enter image description here

推荐答案

我并不奇怪,但我已经提出了这个解决方案,满足了我对对齐的期望.如果你的眼睛因为这个片段而受伤,请给出一些优化建议.我已经知道,在调整灵活元素的大小后,这将不起作用.

我当然更喜欢用纯CSS制作的解决方案,所以如果你正在列出W3C,case text-align: pyramid;甚至text-align: simon;(wink)现在是官方要求的.

$('#title').each(function(){

    var words = $(this).text().split(/\s+/);
    var total = words.length;
    var originalWidth = $(this).css("width");
    var maxWidth = $(this).width();
    var tempText = $(this);
    var string = "";
    var currentLineString = "";

    $(this).empty();
    tempText.css("width", "auto");

    for (i = 0; i < total; i++){

        var newString = words[total-i-1] + " " + currentLineString;
        tempText.text(newString);

        if (tempText.width() >= maxWidth) {
            tempText.text(currentLineString);
            maxWidth = tempText.width();
            string = currentLineString + "<br>" + string;
            currentLineString = "";
            i--;
        } else {
            currentLineString = newString;
        }
    }
    string = currentLineString + "<br>" + string;
                
    tempText.css("width", originalWidth);
    $(this).html(string);
});

Css相关问答推荐

Tailwind CSS group-hover不适用于自定义前置码

为什么我的CSS关键帧动画在循环之间稍微暂停?

JavaFX如何在Tableview中使用默认和自定义的列标题CSS样式?

此css Select 器的总体特性是什么?按钮:不是(#mainBtn,.cta)

如何在Angular material 选项卡中设置自定义圆角下划线的样式

material 设计--Bootstrap输入域问题

关闭Superset中的Deck.gl工具提示

如何使按钮:之后像按钮:之前一样可见

CSS关键帧中使用transform-origin存在问题的解决方案

Nextjs Tailwind Marquee 组件溢出

如何在变量中插入 SCSS 变量?

Angular Datepicker - 更改日期范围 Select 样式

如何将转换应用于相同的元素但处于不同的状态:悬停

无法更改 div 内链接的悬停 colored颜色

边界半径不起作用

如何通过 JavaScript 重新触发 WebKit CSS 动画?

将未知大小的大图像居中在一个较小的 div 中,并隐藏溢出

内联块列表项中不需要的边距

让 div 扩展全高

更改 html 列表中项目符号的 colored颜色 ?