头闻号

宁波市海曙区泰来化工技术咨询部

化学试剂|安全防护用品|焊接材料与附件|环境检测仪器|建筑用精细化学品|生化试剂

首页 > 新闻中心 > 科技常识:CSS创建竖排文字的简单方法小结
科技常识:CSS创建竖排文字的简单方法小结
发布时间:2024-11-09 00:48:58        浏览次数:4        返回列表

今天小编跟大家讲解下有关CSS创建竖排文字的简单方法小结 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关CSS创建竖排文字的简单方法小结 的相关资料,希望小伙伴们看了有所帮助。

下面是由我翻译自Nettuts+的文章 希望这几种方法能够给你带来一些提示。方法一:<br />标签 一种可能的方法(但不推荐)是在每个字母后面添加<br />标签来实现竖排文字: 复制代码代码如下: <h1> N E T T U T S </h1> <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type"content="text/html; charset=utf-8"/> <title>br Tags</title> </head> <body> <h1> N E T T U T S </h1> </body> </html> 提示:您可以先修改部分代码再运行千万不要使用使用这种方法 它是跛脚和草率的。 方法二:静态包裹 通过这个方法 我们将每个字母包裹在一个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; } </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; } </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 标签中一样。因此 它会严格地显示你添加的空格。 本文由露兜博客翻译自:The Easiest Way to Create Vertical Text with CSS

来源:爱蒂网