如何使用CSS在HTML文档中插入换行符

如何使用CSS在HTML文档中插入换行符

How to insert line breaks in HTML documents using CSS

我正在写一个Web服务,我想将数据作为XHTML返回。 因为它是数据,而不是标记,所以我想保持它非常整洁-没有多余的 s或 s。 但是,为了方便开发人员,我还想使返回的数据在浏览器中合理可读。 为此,我正在考虑使用CSS的一种好方法。

我特别想做的是在某些地方插入换行符。 我知道display: block,但是在我现在要处理的情况下它并不能真正起作用-具有字段的form。 像这样:

1
2
3
4
5
6
<form>
  Thingy 1: <input class="a" type="text" name="one" />
  Thingy 2: <input class="a" type="text" name="two" />
  Thingy 3: <input class="b" type="checkbox" name="three" />
  Thingy 4: <input class="b" type="checkbox" name="four" />
</form>

我希望它可以呈现,以便每个标签显示在与相应输入字段相同的行上。 我已经试过了:

1
input.a:after { content:"\\a" }

但这似乎无济于事。


最好将所有元素包装在label元素中,然后将css应用于标签。 :before和:after伪类不能以一致的方式完全支持。

标签具有很多优点,包括增加的可访问性(在多个级别上)等等。

1
2
3
<label>
    Thingy one: <input type="text" name="one">;
</label>

然后在标签元素上使用CSS ...

1
label {display:block;clear:both;}

表单控件是由浏览器专门处理的,因此很多事情不一定能正常工作。其中之一就是生成的内容-它不适用于表单控件。而是将标签包裹在中并使用label:before { content: '\\a' ; white-space: pre; }。您也可以通过浮动所有内容并将clear: left添加到元素来完成此操作。


看起来您想在列表中显示一堆表单项,对吗?嗯...如果只有那些HTML规范人员认为包含标记来处理项目列表...

我建议您这样设置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<form>
 
<ul>

   
<li>
<label>Thingy 1:</label><input class="a" type="text" name="one" />
</li>

   
<li>
<label>Thingy 1:</label><input class="a" type="text" name="one" />
</li>

 
</ul>

</form>

然后,CSS变得容易得多。


以下内容将为您提供换行符。但是,这也会在前面增加多余的空间...您必须通过删除制表符来弄乱源代码缩进。

1
form { white-space: pre }

1
2
3
4
5
6
7
8
9
<style type="text/css">
label, input { float: left; }
label { clear:left; }
</style>

<form>
    <label>thing 1:</label><input />
    <label>thing 2:</label><input />
</form>

1
2
3
4
5
6
<form>
   <label>Thingy 1: <input class="a" type="text" name="one" /></label>
   <label>Thingy 2: <input class="a" type="text" name="two" /></label>
   <label>Thingy 3: <input class="b" type="checkbox" name="three" /></label>
   <label>Thingy 4: <input class="b" type="checkbox" name="four" /></label>
</form>

和以下CSS

1
form label { display: block; }

一种选择是在XML中指定XSLT模板,(某些)浏览器将处理该XSLT模板,从而允许您包含不影响Web服务使用者的带有标记,CSS,颜色等的表示形式。

在XHTML中,您只需在CSS元素周围添加一些填充,例如

格式input.a {margin-bottom:1em}


秘诀是将整个小东西,标签和小部件包围在一个范围内,该范围内的类负责阻止并清除:

的CSS

1
2
3
4
5
6
<style type="text/css">
  .lb {
    display:block;
    clear:both;
  }
</style>

的HTML

1
2
3
4
5
6
<form>
  <span class="lb">Thingy 1: <input class="a" type="text" name="one" /></span>
  <span class="lb">Thingy 2: <input class="a" type="text" name="two" /></span>
  <span class="lb">Thingy 3: <input class="b" type="checkbox" name="three" /></span>
  <span class="lb">Thingy 4: <input class="b" type="checkbox" name="four" /></span>
</form>

javascript选项使事情变得更加复杂。按照Jon Galloway或daniels0xff的建议进行操作。


CSS clear元素可能是您要寻找的换行符。
沿途:

#login form input {
clear: both;
}

将确保没有其他浮动元素留在输入字段的两侧。

参考


我同意约翰·米利金(John Millikin)的观点。您可以在定义了CSS类的每行周围添加标记或其他内容,然后根据需要使它们显示:block。我可以想到的唯一另一种方法是使成为内联块,并使它们发出"非常大"的padding-right,这将使内联内容变小。

即使这样,最好的选择还是将数据按逻辑分组在标记(或类似标记)中,以指示该数据属于同一类(然后由CSS进行定位)。


使用javascript。如果您使用的是jQuery库,请尝试如下操作:

1
$("input.a").after("<br/>")

或您需要的任何东西。


推荐阅读

    linux命令chm文档?

    linux命令chm文档?,电脑,系统,文件,首页,百度,软件,电机,管理,产品,设备,谁知

    linux开机服务命令行?

    linux开机服务命令行?,系统,工作,地址,信息,服务,设备,数字,第一,设计,发行,l

    linux服务器分区命令?

    linux服务器分区命令?,系统,管理,信息,设备,时间,命令,基础,首次,平均,情况,l

    linux下看服务的命令?

    linux下看服务的命令?,服务,状态,系统,名称,信息,工具,命令,环境,网络,情况,

    linux服务器上传命令?

    linux服务器上传命令?,服务,软件,平台,数据,工具,系统,手机,电脑,设备,官网,

    linux命令与数据流?

    linux命令与数据流?,工作,地址,系统,信息,命令,目录,标准,网络,管理,常用命

    linux服务更新命令?

    linux服务更新命令?,系统,工作,地址,信息,服务,命令,设备,标准,目录,功能,lin

    linux重新服务命令?

    linux重新服务命令?,服务,系统,网络,标准,工作,设备,命令,名称,信息,网络服

    linux恢复数据库命令?

    linux恢复数据库命令?,工具,系统,软件,数据,盘中,密码,命令,备份,数据库,文

    linux储存命令数据?

    linux储存命令数据?,系统,工作,地址,信息,标准,命令,工具,实时,数据,分析,lin

    linux网络服务器命令?

    linux网络服务器命令?,地址,网络,系统,名称,信息,工具,状态,中心,灵活,基础,l

    linux网络服务器命令?

    linux网络服务器命令?,地址,网络,系统,名称,信息,工具,状态,中心,灵活,基础,l

    linux储存命令数据?

    linux储存命令数据?,系统,工作,地址,信息,标准,命令,工具,实时,数据,分析,lin

    linux服务器基本命令?

    linux服务器基本命令?,地址,系统,设备,网络,工作,标准,信息,电脑,命令,密码,l

    linux命令大全数据库?

    linux命令大全数据库?,服务,系统,平台,状态,软件,通用,环境,数据,神州,地址,

    linux上数据库的命令?

    linux上数据库的命令?,服务,系统,信息,地址,命令,密码,工具,管理,数据,单位,

    linux命令dm数据库?

    linux命令dm数据库?,地址,软件,时间,设备,名字,服务,位置,名称,公司,命令,lin

    linux服务器下载命令?

    linux服务器下载命令?,服务,密码,系统,档案,工具,网络,公共,百度,地址,认证,l

    linux命令怎么停服务?

    linux命令怎么停服务?,服务,系统,状态,代码,跨行,软件,情况,第一,名称,命令,l

    linux常用命令文档?

    linux常用命令文档?,工作,系统,地址,管理,网络,命令,信息,目录,操作,文件,lin