css 如何让文字标题显示在边框上?

如图,如何让文字标题显示在边框上?

clipboard.png

阅读 28.3k
10 个回答

如果需要更精确的扩展,fieldset的效果不好,还自己实现一个吧,如下:

<style>
    .box{
        position:relative;
        border:1px solid red;
    }
    .box::before{
        content:attr(title);
        position:absolute;
        left:50%;
        transform:translateX(-50%);
        -webkit-transform:translate(-50%,-50%);
        padding:0 10px;
        background-color:#fff;
    }
</style>
<div class="box" title="使用方法">
    <ol>
        <li>这是啥</li>
        <li>干啥</li>
    </ol>
</div>
 <fieldset>
    <legend>【使用方法】</legend>
  </fieldset>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<fieldset>
    <legend style="text-align: center">【使用方法】</legend>
</fieldset>
</body>
</html>

提供一种hacked方法:

style:

  div {
    width: 400px;
    height: 200px;
    border: 1px solid #ccc;
  }
  div h1 {
    height: 20px;
    margin: -10px auto 0;
    font-size: 14px;
    padding: 0 10px;
    text-align: center;
    width: 50px;
  }

html:

  <div>
    <h1>嘿嘿嘿</h1>
  </div>

绝对定位加文字定宽高

很明显是绝对定位呀

新手上路,请多包涵
<style>
    h2:before, h2:after {
        content: "";
        display: inline-block;
        vertical-align:middle;
        width: 100px;
        border-top: 1px solid #123456;
    }
</style>

<h2>线标题</h2>

设置position为relative,top为-1em 既可设置位置。

background-color为背景色,padding左右0.5em。
其实就是用背景色遮盖边框颜色。

要是背景是渐变色呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏