【已解决】大佬们,有序列表换行如何对齐

如图所示,有啥办法可以让下面的文字对齐吗?哪怕是我自己加空格(也就是第二个)他也还是有点对不齐,我需要图片上第三个没有2.数字的对齐效果
QQ截图20240110152406

Shift+Enter
不对啊 这阅读模式不都是对齐的吗 tab键不就行

第一个就是Shift+Enter的效果,第二个是Tab键的效果,都是不对齐的

无解, md代码编辑器对软换行很难支持到位, 改css也白扯, 顶多能硬改几个层级, 改不了所有层级, 所以建议就是别用.
你或许可以考虑有序列表无序列表交叉着用. 起到一个换行的视觉效果.

1. 面条
    - 面条
    - 面条
2. 面条
    - 面条
    - 面条

1 个赞

阅读模式都是对齐的,楼主应该是说编辑模式
在沙盒库里写了个简单的css,楼主自己调整下数值

span.list-number {
    margin-left: 14px;
}

效果如图

  • image
1 个赞

这个有用,但是有点小缺陷;你看,如果需要输入文字,光标定位在那里,他就会往后推移一点点(图1和图2的效果对比)有啥办法解决这个么

QQ截图20240111095930
QQ截图20240111100056

.cm-formatting.cm-formatting-list.cm-formatting-list-ol{
  margin-left: 5px;
}

还是没用,看来这个真的无法通过CSS实现了 :sob:,不过还是感谢你的回复 :rose:

抱歉,我理解错了,我以为两个代码都要加,测试了一下发现只要加下面这个代码就行了
感谢感谢 :heart:已经成功了,是我想要的效果 :hibiscus: :hibiscus: :hibiscus: :hibiscus:

1 个赞

在沙箱里试了一下, 有序列表的问题是, 当序号的位数不一样时, 软换行的行为就不一样, 所以只调margin-left恐怕无法同时让它们各自对齐, 而且折叠符与缩进线的位置也都得跟着调.
image

顺便问下, 我看v1.5版本更新里写了, 有序列表编号将在编辑模式下右对齐, 但现在依然是左对齐, 也没找到哪里有相应设置, 不知道是没有实装还是怎样, 这个能用css改么.

确实,这有序列表位数不同的缩进也不同
有两个思路:

  1. 9. 之后10.之前的元素调整缩进 - css无解,需要JavaScript,参考Heading Level Indent插件
  2. 多位数列表行调整缩进,对齐一位数的列表
  • 通过style处的属性选择二位数序号的行.HyperMD-list-line.HyperMD-list-line-1.cm-line:not(.HyperMD-list-line-nobullet)[style*="text-indent: -55px;"](需要使用:not伪类把Shift+Enter的行排除掉),然后移动 42-55=-13px
  • 再修改Shift+Enter的行中缩进元素的宽度,对齐到有序列表行
/* 二位数序号的有序列表行 - 左移 */
.HyperMD-list-line.HyperMD-list-line-1.cm-line:not(.HyperMD-list-line-nobullet)[style*="text-indent: -55px;"]
{
  transform: translateX(-13px);
}
/* Shift+Enter行的缩进 - 调整宽度*/
.HyperMD-list-line.HyperMD-list-line-1.HyperMD-list-line-nobullet.cm-line .cm-indent{
  min-width: 0!important;
  width: 43px!important;
}
  • 效果如图
    • image
  • 注意:
    • 字号修改后失效,因为元素中的text-indent属性会随着字号变化(有方法解决吗?)
    • 三位数应该用不到吧?需要的话也可以仿照着加一行左移
1 个赞

发现了一个办法,如图



使用的主题是 Border ,此方法目前来看可以近乎完满的解决上述问题

.cm-s-obsidian .HyperMD-list-line.HyperMD-list-line-nobullet{
  margin-left: 24px !important;
}

QQ截图20240219112344
只有个位数有用,你看,10和100就都错位了