当前位置: 首页 > 面试题库 >

隐藏元素,但显示CSS生成的内容

岳永思
2023-03-14
问题内容

是否可以隐藏元素的内容,但保持其:before内容可见?说我有以下代码:

HTML:

<span class="addbefore hidetext">You are here</span>

CSS:

.addbefore:before {
    content: "Show this";
}
.hidetext {
    // What do I do here to hide the content without hiding the :before content?
}

我试过了:

  • 使用display: none和设置display: inline:before,但两者均仍处于隐藏状态
  • 使用width: 0; overflow: hidden;,但随后似乎增加了额外的空间(?)
  • 使用颜色:透明;但是,当然,跨度的内容仍会占用空间
  • 使用text-indent: -....px,但是
    1. 这被搜索引擎和
    2. 似乎不适用于span元素(?)

关于如何执行此操作还有其他想法吗?


问题答案:

您可以使用visibility: hidden,但是使用此解决方案,隐藏的内容仍然 会占用空间 。如果这对您而言无关紧要,请按照以下步骤进行:

span {
    visibility: hidden;
}

span:before {
    visibility: visible;
}

骇人的替代解决方案

另一种解决方案是设置font-size跨度 归零
*的价值很小。这种方法的优点:隐藏的内容不会占用任何空间。缺点:您将无法使用诸如em或%之类的相对单位作为:before内容的字体大小。

span:before {
    content: "Lorem ";
    font-size: 16px;
    font-size: 1rem; /* Maintain relative font-size in browsers that support it */
    letter-spacing: normal;
    color: #000;
}

span {
    font-size: 1px;
    letter-spacing: -1px;
    color: transparent;
}

jsfiddle上的示例。

更新(2015年5月4日): 使用CSS3,您现在可以使用rem(Root
EM)单元来维护:before元素中的相对字体大小。(浏览器支持。)

*此帖子的先前版本建议将字体大小设置为零。但是,这在某些浏览器中无法正常工作,因为CSS并未定义将font-size设置为0时的预期行为。为了实现跨浏览器的兼容性,请使用上述较小的字体。



 类似资料:
  • 问题内容: 按下后如何隐藏“编辑”链接?当我按下编辑键时,是否还可以隐藏“ lorem ipsum”文本? 问题答案:

  • 本文向大家介绍jQuery元素的隐藏与显示实例,包括了jQuery元素的隐藏与显示实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery元素的隐藏与显示的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的jQuery程序设计有所帮助。

  • 本文向大家介绍jQuery控制元素隐藏和显示,包括了jQuery控制元素隐藏和显示的使用技巧和注意事项,需要的朋友参考一下 1、jQuery隐藏和显示效果 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: 2、jQuery淡入淡出效果 通过 jQuery,您可以实现元素的淡入淡出效果。 jQuery 拥有下面四种 fade 方法: fadeIn()

  • 问题内容: 我第一次弄乱React.js,找不到通过click事件在页面上显示或隐藏内容的方法。我没有在页面上加载任何其他库,所以我正在寻找使用React库的本机方法。到目前为止,这就是我所拥有的。当点击事件触发时,我想显示结果div。 问题答案: 大约在2020年做出反应 在回调中,调用状态挂钩的 setter函数以更新状态并重新渲染: JSFiddle 反应约2014年 关键是使用来更新点击处

  • 我有一个问题隐藏和显示一个元素取决于一个布尔变量在角2。 这是div要显示和隐藏的代码: 变量已“编辑”,并存储在我的组件中: 元素是隐藏的,当saveTodos函数启动时,会显示元素,但3秒钟后,即使变量返回为false,元素也不会隐藏。为什么?

  • 问题内容: 我一直在寻找一个很好的技巧,使隐藏/显示内容或仅具有CSS而没有javascript的列表。我已成功执行此操作: 并且它正在工作,但没有达到应有的效果。这是问题所在:显示内容时,您可以通过单击“页面上的任何位置”将其隐藏。如何禁用它?如何通过单击“隐藏”隐藏内容“仅”?先感谢您! 问题答案: 我不会使用复选框,而是使用您已经拥有的代码 CSS HTML 这样,仅在单击hide元素时隐藏