CSS创建竖排文字的简单方法
2013-05-01 07:09
531 查看
在制作网页的时候我们经常需要创建一些竖排的文字,或许这对你来说是一件很简单的事情,但是你是否想过用CSS可有N种创建竖排文字的方法?希望这几种方法能够给你带来一些提示。
一种可能的方法(但不推荐)是在每个字母后面添加<br />标签来实现竖排文字:
点击查看演示
千万不要使用使用这种方法,它是跛脚和草率的。
通过这个方法,我们将每个字母包裹在一个span中,然后在CSS中设置它的
这种方法的问题是,除了可怕的标签外,它需要你手工去给每个字母用span括起来。如果这些文字是由CMS动态生成的,那就别用这种方法了。
我最初的想法是用JavaScript动态地添加span标签,这样我们就避开了方法二遇到的问题。
这个方法绝对是一个进步。以上方法中,我们将一行文本(NETTUTS)分拆放到一个数组中,并且将每个字母用span标签括起来。虽然我们可以用如for语句或$.map来筛选这个数组,但是更好更快的方法是手动地同时将文字插入和括起来。虽然相比方法二,这种方法更好,但是仍然不推荐此方法:
在JavaScript被禁用的情况下会破坏你的布局
理想的情况下,如果可能的话,我们应该使用CSS来完成这个任务。
如果可能的话,还是让我们远离JavaScript吧。如果我们给容器元素指定一个宽度,并强迫文字换行,如何?那是可以的。
在这个方法中,我们给h1定义很窄的宽度,然后是其文字的宽度等于外围的宽度,最后设置word-wrap 等于 break-word,这样我们就可以强制每个字母单独在一行。不过需要注意的是,
所以,使用这种方法,当你给h1指定具体像素宽度的时候,要特别小心。这种方法也不推荐!
作为预防措施,并扩展方法四,我们为什么不申请相当大的letter-spacing来解决这个问题?
这似乎解决了这个问题,但是在这里,我们又使用了一些CSS3的属性。
另外,还有一个一行内的解决方法。不知道你有没有记得,当给父级元素指定
方法一:<br />标签
一种可能的方法(但不推荐)是在每个字母后面添加<br />标签来实现竖排文字:1 2 3 | <h1> N <br />E <br />T <br />T <br />U <br />T <br />S </h1> |
点击查看演示
千万不要使用使用这种方法,它是跛脚和草率的。
方法二:静态包裹
通过这个方法,我们将每个字母包裹在一个span中,然后在CSS中设置它的display属性为
block
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <!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> |
方法三:使用JavaScript
我最初的想法是用JavaScript动态地添加span标签,这样我们就避开了方法二遇到的问题。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <!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> |
在JavaScript被禁用的情况下会破坏你的布局
理想的情况下,如果可能的话,我们应该使用CSS来完成这个任务。
方法四:给容器指定一个宽度
如果可能的话,还是让我们远离JavaScript吧。如果我们给容器元素指定一个宽度,并强迫文字换行,如何?那是可以的。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <!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> |
break-word是一个CSS3的属性,并不是所有浏览器都兼容。如果排除旧浏览器的话,这个问题貌似就可以解决了。。。但并完全是!上面的演示确实可以正常工作,但是玩像素值是很危险的,不信可以看看 将大写字母转换成小写字母的后果(在IE下看看):
所以,使用这种方法,当你给h1指定具体像素宽度的时候,要特别小心。这种方法也不推荐!
方法五:使用 letter-spacing
作为预防措施,并扩展方法四,我们为什么不申请相当大的letter-spacing来解决这个问题?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <!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> |
方法六:使用 em
s
另外,还有一个一行内的解决方法。不知道你有没有记得,当给父级元素指定 overflow: hidden的时候,父元素就会扩展以包含浮动? 这个方法就类似这个,关键是使用了 em,并给每个字母之间添加了空格。
相关文章推荐
- CSS创建竖排文字的简单方法小结
- CSS创建竖排文字的简单方法
- 使用CSS实现文字的竖排的简单方法
- css-文字和图片在容器内垂直居中的简单方法
- VC中实现文字竖排的简单方法(推荐)
- Android TextView 横排文字变竖排的简单方法
- css属性让网页文字实现竖排的几种方法
- HTML + CSS + DW 中的文字纵向竖排的方法
- VC中实现文字竖排的简单方法
- CSS几种简单方法实现文字竖向排版
- Qt中QPushButton 和QToolButtol文字竖排显示的简单实现方法
- 4种CSS文字竖排方法
- 文字居中的几种CSS简单的样式设置方法
- VC中实现文字竖排的简单方法
- 4种CSS文字竖排方法
- CSS几种简单方法实现文字竖向排版
- 如何实现图片转文字的简单方法
- css文字竖排
- 索引 视图 存储过程和函数 简单理解 以及使用创建方法
- CSS学习之创建一个简单的导航栏