CSS标题代码动画



INFO: CSS代码基本上是显示一个名字下面有一条小线,当你把鼠标悬停在它上面时,这条线开始完成一个完整的矩形。当鼠标悬停时,它会切换回名称下方的一行。

我遇到的问题是,当我尝试改变文本的大小(在矩形中),我有很多问题,如:-矩形需要调整新的文本的高度和宽度-矩形需要重新居中(由于某些原因它没有保持居中)-当文本是类似名字的东西时:例如John Smith,当尺寸太大时,John的底部会开始接触Smith的顶部

QUESTION:我怎样才能使代码更好一点,这样当我改变文本的大小时,一切都自动适应,而不需要大量的重新调整?

    <header id="header">
      <div class="svg-wrapper">
        <svg class="svg-name" xmlns="http://www.w3.org/2000/svg">
          <rect class="shape" />
          <div class="text">John Smith</div>
        </svg>
      </div>
    </header>

CSS代码

    header {
      height: 450px;
      background-image: url(/assets/img/logo.svg), url(/assets/img/background.jpe);
      background-position: 20px 20px, bottom;
    }
    header nav {
      float: right;
      margin: 30px 30px 0 0;
    }
    header nav a {
      display: inline-block;
      margin-left: 20px;
      color: rgba(0, 0, 0, 0.7);
    }
    header nav a:hover {
      color: black;
    }
    header .svg-wrapper {
      position: relative;
      top: 50%;
      transform: translateY(-50%);
      margin: 0 auto;
      width: 360px;
    }
    header .svg-wrapper:hover .shape {
      stroke-width: 2px;
      stroke-dashoffset: 0;
      stroke-dasharray: 960;
    }
    header .svg-name {
      height: 120px;
      width: 360px;
    }
    header .shape {
      height: 120px;
      width: 360px;
      stroke-dasharray: 140 940;
      stroke-dashoffset: -674;
      stroke-width: 8px;
      fill: transparent;
      stroke: black;
      border-bottom: 5px solid black;
      transition: stroke-width 1s, stroke-dashoffset 1s, stroke-dasharray 1s;
    }
    header .text {
      text-transform: uppercase;
      font-size: 132px;
      line-height: 32px;
      letter-spacing: 8px;
      color: black;
      top: -100px;
      position: relative;
      text-align: center;
    }

小提琴URLhttps://jsfiddle.net/snenkov/kshawbg5/6/

CODEPEN URLhttp://codepen.io/anon/pen/MwXbVM

将行高改为

header .text {
   line-height:1;
}

或从"header .text"类中删除行高

最新更新