【问题标题】:css content element not showed in if display=flex如果 display=flex 则不显示 css 内容元素
【发布时间】:2022-01-07 01:10:20
【问题描述】:

我有一行描述完整的公司地址。 它是由不同的部件制成的

<div><b>COMPANY</b>&nbsp;•&nbsp;Address,&nbsp;City&nbsp;•&nbsp;VAT 12345678901</div>

在大屏幕中,div 显示为一条长线:

COMPANY • Address line, City • VAT 12345678901

但在小型移动设备上显示为三行:

     COMPANY • 
Address line, City • 
  VAT 12345678901

我的目标是移除小型设备上的子弹。 为了实现这个目标,我定义了一个span 元素如下:

.bg99 .footer-divider {
    content: "&nbsp;•&nbsp;";
}
@media only screen and (max-width: 768px){ 

    .bg99 div.company div {
        flex-direction: column;    
    }
    .bg99 .footer-divider {
        content: "&nbsp;&nbsp;"
    }
    
  }

并将该行更改如下:

<div><b>COMPANY</b><span className="footer-divider"/>Address,&nbsp;City<span className="footer-divider"/>VAT 12345678901</div>

但结果是两个设备上的子弹都消失了。

检查浏览器,我看到 CSS 类 footer-divider 和内容

.bg99 .footer-divider {
    content: "&nbsp;•&nbsp;";
}

但子弹在屏幕上不可见。看起来该规则不应该应用。

有什么想法吗?

【问题讨论】:

  • Afaik content 仅适用于 ::before 等伪元素。此外,内容按原样插入,这意味着您最终会得到  可见。您可以做的是将项目符号点放在跨度中,然后将其隐藏在较小的屏幕上:jsfiddle.net/fu6L5a1j
  • @ChrisG 我认为内容可以用来替换元素中的内容。我错了吗? developer.mozilla.org/en-US/docs/Web/CSS/content

标签: javascript html css css-content


【解决方案1】:

我认为首先您需要在 html 标记中将“className”替换为“class”

试试下面可能有帮助的代码

HTML

<div class="bg99">
<b>COMPANY</b>
<span class="footer-divider">Address,&nbsp;City</span>
<span class="footer-divider">VAT 12345678901</span>
</div>

CSS

@media only screen and (max-width: 768px){

    .bg99 div.company div {
        flex-direction: column;    
    }
    
    .bg99 .footer-divider::before{
        content: "*"
    }
    
  }
  

【讨论】:

  • 我使用了className,因为代码在React-JS
  • 知道了。上述解决方案对您有用吗?检查此链接jsfiddle.net/SyamKumarD/xa49vspy/23
  • 不知道!问题的第一条评论给了我解决方案。
  • 好的,编码愉快:)
猜你喜欢
  • 1970-01-01
  • 2018-01-11
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 2020-06-11
  • 2020-05-04
  • 2016-11-03
  • 1970-01-01
相关资源
最近更新 更多