2016-12-05 70 views
0

哪种方法更有效地呈现大写文本:CSS还是PHP?哪种方法对大写文本更有效:CSS还是PHP?

a。 PHP

<?php 
echo strtoupper("Test"); // TEST 
?> 

b。 CSS

<style type="text/css">.uppercase { text-transform: uppercase; }</style> 
<div class="uppercase">Test</div> 
+4

这两种效率都取决于您是否要使用您的服务器或用户的浏览器。 – Dekel

+0

通过效率,你意味着运行它时失败的几率?我认为css和php都可以在100%的场合将文本转换为大写。 –

+0

问题分离:PHP处理内容,CSS处理样式。你认为它属于哪一类? – 4castle

回答

2

在渲染内容方面没有真正的效率差异。一个是通过PHP在服务器上呈现的。另一个使用CSS在浏览器中呈现。

您可能需要考虑一个通用效率问题。

使用PHP,您将单个字符串转换为大写。如果你有其他的字符串转换,你需要每次重复该功能。

使用CSS,您可以使用单个选择器定位您希望大写的所有文本。

在这方面,我会说CSS更高效,因为它更简单,可扩展且更容易维护。

此外,假设CSS处理其他文本样式,如font-sizefont-familyfont-weightfont-stylecolorletter-spacing,那么为什么不包括在该组中text-transform

为什么选出一种样式由PHP处理,其余的由CSS处理?

除非出于某种原因,PHP必须处理大写转换,否则应该将所有样式任务分配给CSS。

3

两种方式都是高效:给定任何输入,两种方式都会将输入转换为等量的步骤(假设类似的实现,即O(n))的大写输出。

但是,您应该问的问题不在于两者是否都有效;问题是您是否希望您的服务器负责将文本转换为大写形式样式的目的。

答案是:当然不是,that's CSS' job

让客户端(浏览器)处理文本转换将从服务器中删除一条指令(每个请求),并将客户端/服务器的责任分开。

现在一条指令可能没有多大改变,但情况并非总是如此。保持客户端/服务器职责分离有助于保持代码清洁。 :)

它也有一个好处@Michael_B提到,这是你可以更容易地使用CSS选择器定位多个字符串,而不是用PHP手动转换它们。