建站学习网,专业提供各类建站教程,网页素材,SEO资讯等建站资源!

网站模板_网站源码_网站素材_建站教程_建站学习网

当前位置:建站学习网 > 网页设计 > 交互设计教程 >

CSS创建竖排文字的简单方法

更新时间:2017-05-06整理编辑:建站学习网阅读:0

在制作网页的时候我们经常需要创建一些竖排的文字,或许这对你来说是一件很简单的事情,但是你是否想过用CSS可有N种创建竖排文字的方法?下面是由我翻译自Nettuts+的文章,希望这几种方法能够给你带来一些提示。

方法一:<br/>标签

一种可能的方法(但不推荐)是在每个字母后面添加<br />标签来实现竖排文字:

 

以下为引用的内容:

<h1>
   N <br />E <br />T <br />T <br />U <br />T <br />S
</h1>

 

千万不要使用使用这种方法,它是跛脚和草率的。

方法二:静态包裹

通过这个方法,我们将每个字母包裹在一个span中,然后在CSS中设置它的display属性为block。

 

以下为引用的内容:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Vertical Text</title>

<style>
  h1 span { display: block; }
</style>
</head>
<body>

  <h1>
   <span> N </span>
   <span> E </span>
   <span> T </span>
   <span> T </span>
   <span> U </span>
   <span> T </span>
   <span> S </span>
  </h1>

</body>
</html>
 

 

这种方法的问题是,除了可怕的标签外,它需要你手工去给每个字母用span括起来。如果这些文字是由CMS动态生成的,那就别用这种方法了。

方法三:使用JavaScript

我最初的想法是用JavaScript动态地添加span标签,这样我们就避开了方法二遇到的问题。

 

以下为引用的内容:


<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Vertical Text</title>

<style>
  h1 span { display: block; }
</style>
</head>
<body>
  <h1> NETTUTS </h1>

  <script>
    var h1 = document.getElementsByTagName('h1')[0];
    h1.innerHTML = '<span>' + h1.innerHTML.split('').join('</span><span>') + '</span>';
  </script>
</body>
</html>

 

这个方法绝对是一个进步。以上方法中,我们将一行文本(NETTUTS)分拆放到一个数组中,并且将每个字母用span标签括起来。虽然我们可以用如for语句或$.map来筛选这个数组,但是更好更快的方法是手动地同时将文字插入和括起来。虽然相比方法二,这种方法更好,但是仍然不推荐此方法:

在JavaScript被禁用的情况下会破坏你的布局。

理想的情况下,如果可能的话,我们应该使用CSS来完成这个任务。

方法四:给容器指定一个宽度

如果可能的话,还是让我们远离JavaScript吧。如果我们给容器元素指定一个宽度,并强迫文字换行,如何?那是可以的。

 

以下为引用的内容:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Vertical Text</title>

<style>
  h1 {
    width: 50px;
    font-size: 50px;
    word-wrap: break-word;
  }
</style>
</head>
<body>
  <h1> NETTUTS </h1>
</body>
</html>

 

在这个方法中,我们给h1定义很窄的宽度,然后是其文字的宽度等于外围的宽度,最后设置word-wrap 等于 break-word,这样我们就可以强制每个字母单独在一行。不过需要注意的是, break-word是一个CSS3的属性,并不是所有浏览器都兼容。如果排除旧浏览器的话,这个问题貌似就可以解决了。。。但并完全是!上面的演示确实可以正常工作,但是玩像素值是很危险的,不信可以看看 将大写字母转换成小写字母的后果(在IE下看看):

所以,使用这种方法,当你给h1指定具体像素宽度的时候,要特别小心。这种方法也不推荐!

方法五:使用 letter-spacing

作为预防措施,并扩展方法四,我们为什么不申请相当大的letter-spacing来解决这个问题?

 

以下为引用的内容:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Vertical Text</title>

<style>
  h1 {
    width: 50px;
    font-size: 50px;
    word-wrap: break-word;
    letter-spacing: 20px; /* Set large letter-spacing as precaution */
  }
</style>
</head>
<body>
  <h1> Nettuts </h1>
</body>
</html>

 

这似乎解决了这个问题,但是在这里,我们又使用了一些CSS3的属性。

方法六:使用 ems

另外,还有一个一行内的解决方法。不知道你有没有记得,当给父级元素指定 overflow: hidden 的时候,父元素就会扩展以包含浮动? 这个方法就类似这个,关键是使用了 em,并给每个字母之间添加了空格。

 

以下为引用的内容:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Vertical Text</title>

<style>
  h1 {
    width: 1em;
    font-size: 40px;
    letter-spacing: 40px; /* arbitrarily large letter-spacing for safety */
  }
</style>
</head>
<body>
  <h1> N e t t u t s </h1>
</body>
</html>

 

漂亮又整洁,对不对?并且,这种方法可以给你的文字指定任意的font-size,因为我们使用了em,它就相当于选择字体的x-height,给我们提供了更多的灵活性。

但是,你是否又一次想起,有时一行中会有不止一个字母。可实际情况是,你可以安全使用这种方法,因为我已经指定了一个相当大的letter-spacing,以确保一行只会有一个字母。

到目前为止,据我所知,这是最好的跨浏览器兼容的解决方案。

方法七:Whitespace

最后一个方法来达到这种效果是使用 white-space属性。

 

以下为引用的内容:

<!DOCTYPE HTML>
<html lang="en">
   <head>
      <meta charset="UTF-8">
      <title>Vertical Text</title>
      <style>
         h1 { white-space: pre; }
      </style>
   </head>
   <body>

      <h1>
         J
         E
         F
         F
         R
         E
         Y
      </h1>
   </body>
</html>

 

通过设置 white-space 的值为 pre,即可控制文字的排版就像在一个 pre 标签中一样。因此,它会严格地显示你添加的空格。

本文网址:https://www.dedexuexi.com/wysj/jhsj/3111.html

本站部分文章搜集与网络,如有侵权请联系本站,转载请说明出处。

收藏此文 赞一下!() 打赏本站

如本文对您有帮助,就请建站学习网抽根烟吧!

支付宝打赏
微信打赏
网页设计基本配色参考色谱——堂皇
« 上一篇2017年05月09日
一份简单实用的微交互设计指南
2017年05月09日下一篇 »
  • 网易云音乐WP1.0设计项目实战
    0阅读
    WP 平台是很多设计师很少涉足的地方,优设之前发过一篇WP设计规范指南,今天网易的同学继续上干货,来一篇WP的设计项目实战!作为一款有诚意的音乐APP,这次设计过程相当用心,值得学习的地方也很多,学习来。项目背景Windows Phone一直是各家公司缺少投入的平台,WP用户不得不经常面对一个成...
  • 马伯庸教你如何做一个万年好甲方
    0阅读
    编者按:原以为亲王精通历史,会写小说,现在才知道他也很懂作为甲方的门道啊。今天分享@马伯庸 同学的一篇好文,前有笑点,后有干货,有趣得紧。作为设计师,能遇到这样的甲方就嫁了吧。@马伯庸 :对我们甲方来说,艺术性是第三才需要考虑的因素。我们第二考虑的是如何有效率地把核心信息传达到客户那儿去。无论多么...
  • 网站设计主题和风格是重点
    0阅读
    企业为了在互联网上争夺一席之地,纷纷建起了网站。企业的网站就像企业的网络门户,既然是门面那么就要将网站建设好,充分展现企业的良好形象。貌似许多企业建网站是为了赶时髦,因为他们的企业网站设计的实在是不堪入目,这样不仅不会为企业带来什么利益,相反还会毁了企业的形象。那么企业要建好这样的门面应该如何入手呢...
  • 如何给网站布置干净的“关于我们”页面
    0阅读
    所有网站,无论是官方、电子商务、社会化网络还是个人站点,都应该设计一个恰到好处的关于页面,直截了当地告诉到访者,为什么要浪费他们宝贵的时间浏览你的网站。 一、为什么要有关于页面 不要让用户思考! 1、向浏览者传达本站的价值,留住用户 2、始终提醒自己站点的主旨,不要跑题 二、起什么名 关于页面存在的...
  • 如何建立一个成功的移动应用
    0阅读
    一个消费者应用程序是否成功,只通过相加其组成部分的总和来计算。简单的查看用户手机应用的下载历史,用户设备残留的移动应用数量,和那些真的被坚持使用的移动应用情况,就能知道这句话的真实含义。然而,如果你想知道为什么有些用户不再使用某些手机应用,那这篇文章可能会给你一些启示。 像一台机器一样,移动应用通过...
 
QQ在线咨询