css - CSS 工具提示 :before

标签 css html

我创建了一个基于 CSS 的文本前缀,如下所示:

.staff-only:before {
    font-family: "FontAwesome";
    content: "\f023";  /* padlock */
}

它在文本前面显示一个挂锁,表明该文本是 secret 的。我想显示一个提示(又名工具提示或 HTML5 标题),内容为“仅对工作人员可见”,当用户将鼠标悬停在挂锁上时会显示该提示。我怎样才能实现它?

完整示例 到目前为止,在评论的帮助下,我(卡住)在这里:

.staff-only {
    background-color: #c1ebf3;
    color: #808080;
    padding-left: -2px;
    padding-right: 0.2em;
    border-radius: 3px;
}
.staff-only:before {
    font-family: "FontAwesome";
    content: "\f023";  /* padlock */
    color: silver;
    padding-left: 5px;
    padding-right: 5px;
}
.staff-only:after {
    font-family: "FontAwesome";
    content: "\f13e";  /* open padlock */
    color: silver;
    padding-left: 5px;
    padding-right: 5px;
}
.staff-only:hover .tooltiptext {
    visibility: visible;
}   
.staff-only .tooltiptext {
    visibility: hidden;
    background-color: rgba(255,255,255,0.5);
    color: darkred;
    text-align: center;
    padding: 5px 5px;
    border-radius: 6px;
    border-style: solid;
    border-width: thin;
    width: 0;

    position: relative;
    z-index: 1;
    top: -25px;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<p>
  <span class="staff-only">
      Secret text
      <span class="tooltiptext">Tooltip text</span> 
  </span>
</p>

这就是我得到的。屏幕截图显示两条评论,一条是公开的,一条是员工专用的。问题是员工专用评论右侧的空白区域,这似乎适合工具提示文本。无法应对:(

Screenshot

最佳答案

更新问题后,您应该用 <span> 包裹该元素:

.staff-only {
  background-color: #c1ebf3;
  border-radius: 3px;
  color: #808080;
  padding-left: -2px;
  padding-right: 0.2em;
}
.staff-only:before {
  font-family: "FontAwesome";
  content: "\f023";  /* padlock */
  color: silver;
  padding: 0px 5px;
}
.tooltip:hover:after {
  content: "Visible only to staff members!";
  color: silver;
  font-size:0.9em;
  padding:0 10px;
  background:black;
}
.tooltip-data:hover:after {
  content: attr(data-msg);
  color: silver;
  font-size:0.9em;
  padding:0 10px;
  background:black;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<p>
  <span class="tooltip">
    <span class="staff-only">Secret text</span>
  </span>
</p>
<p>
  <span class="tooltip-data" data-msg="Visible only to staff members!">
    <span class="staff-only">Secret text</span>
  </span>
</p>


原始答案:

您可以使用:after显示一个小工具提示:

.staff-only {
  background-color: #c1ebf3;
  border-radius: 3px;
  color: #808080;
  padding-left: -2px;
  padding-right: 0.2em;
}
.staff-only:before {
  font-family: "FontAwesome";
  content: "\f023";  /* padlock */
  color: silver;
  padding: 0px 5px;
}
.staff-only:hover:after {
  content: "Visible only to staff members!";
  color: silver;
  font-size:0.9em;
  padding-left:10px;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<p>
  <span class="staff-only">Secret text</span>
</p>

关于css - CSS 工具提示 :before,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46043915/

相关文章:

html - CSS - 即使内容不足,也将页脚放在页面底部

javascript - 如何在 Ember 的 mdc-layout-grid 的下一行显示嵌套的 JSON 对象?

javascript/jquery - 如何获取尚未添加到 dom 的元素/css 类的宽度

javascript - AngularJS 刷新时漂亮的 URL 路由

JavaScript 列表 : Delete and Edit items function?

css - 垂直对齐 block 元素到图像?

jquery - 调整DataTable pdf导出的列宽

javascript - 在同一 UL 中左右浮动

标题横幅的 html5 + CSS3 中心页面文本

javascript - 如何防止浏览器缓存一个json文件