V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
zhiqiang
V2EX  ›  CSS

请教一个前端 css,如何去掉段落最前面的 margin。

  •  
  •   zhiqiang · Jan 11, 2020 · 3332 views
    This topic created in 2300 days ago, the information mentioned may be changed or developed.

    我为<code/>添加了 margin:

    code {
    	margin-left:4px;
        margin-right:4px;
    }
    

    但它会在段落<p><code>xxx</code>yyy最前面也增加空白。然后我又尝试了first-child去掉:

    code:first-child {
    	margin-left: 0;
    }
    

    然后我发现它把<p>init<code>xxx</code>yyy的左边距也去掉了。

    请问怎么写能实现我的目的?就是<code/>发生在一段的最开始,没有左边距。如果不是,就需要有左边距。

    8 replies    2020-01-11 19:59:36 +08:00
    wolfan
        1
    wolfan  
       Jan 11, 2020 via Android
    emmm
    <code>如果在第一行就没有 margin-left,如果不在就没有?
    为什么不给<p>加个 padding ?

    或者你是要:p>code{margin-left:4px}
    zhiqiang
        2
    zhiqiang  
    OP
       Jan 11, 2020
    @wolfan `<code/>`不会换行。如果不好理解,可以改成`<span/>`。
    geelaw
        3
    geelaw  
       Jan 11, 2020 via iPhone
    一个简单的做法是牺牲语义,手动在 code 左右加合适的空格。而且拉丁文本里 code 两侧本来就有空格。
    wolfan
        4
    wolfan  
       Jan 11, 2020
    @zhiqiang 我觉得吧,你这个需求是 js 的事,不是 css 的事。

    and 不是换 span 啥的事,是我语文成绩不好。总之我觉得你这个需求 css 是办不了的,因为 css 不能判断 code 前面有没有字符串什么的,css 只能知道<code>前面有没有其它 tag。所以这活 css 能干就是上天了。
    yixiang
        5
    yixiang  
       Jan 11, 2020   ❤️ 3
    zhiqiang
        6
    zhiqiang  
    OP
       Jan 11, 2020
    @yixiang 非常感谢。这个好,除了不能完全控制宽度,基本就是我想要的效果。
    loading
        7
    loading  
       Jan 11, 2020
    @zhiqiang 你要控制宽度只要 code:before, code:after 里面设置就行了。
    wolfan
        8
    wolfan  
       Jan 11, 2020
    用 before,after,和用 margin: auto 4px; 不是一样的么?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5181 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 05:40 · PVG 13:40 · LAX 22:40 · JFK 01:40
    ♥ Do have faith in what you're doing.