đầu ra:
xin chào Bạn khỏe không
mã:
<p>hello <br> How are you </p>
Làm thế nào để đạt được cùng một đầu ra mà không cần <br>
?
đầu ra:
xin chào Bạn khỏe không
mã:
<p>hello <br> How are you </p>
Làm thế nào để đạt được cùng một đầu ra mà không cần <br>
?
Câu trả lời:
Không thể có cùng cấu trúc HTML, bạn phải có một cái gì đó để phân biệt giữa Hello
và How are you
.
Tôi đề nghị sử dụng span
s mà sau đó bạn sẽ hiển thị dưới dạng các khối (giống như <div>
thực tế).
<br>
là đánh dấu chính xác. Khoảng cách cho một bài thơ sẽ là sai.
Bạn có thể sử dụng white-space: pre;
để làm cho các yếu tố hoạt động như thế <pre>
, mà bảo tồn các dòng mới. Thí dụ:
Lưu ý cho IE rằng điều này chỉ hoạt động trong IE8 +.
pre
là pre-line
, cho phép gói.
white-space
quy tắc CSS.
<br/>
như bình thường, nhưng ẩn nó display: none
khi bạn không muốn.Tôi hy vọng hầu hết mọi người tìm thấy câu hỏi này muốn sử dụng thiết kế css / responsive để quyết định xem có ngắt dòng xuất hiện ở một nơi cụ thể hay không. (và không có bất cứ điều gì cá nhân chống lại <br/>
)
Mặc dù không rõ ràng ngay lập tức, nhưng bạn thực sự có thể áp dụng display:none
cho một <br/>
thẻ để ẩn nó, điều này cho phép sử dụng các truy vấn phương tiện song song với các thẻ BR ngữ nghĩa.
<div>
The quick brown fox<br />
jumps over the lazy dog
</div>
@media screen and (min-width: 20em)
{
br
{
display: none; // hide the BR tag for wider screens (i.e. disable the line break)
}
}
Điều này rất hữu ích trong thiết kế đáp ứng khi bạn cần buộc văn bản thành hai dòng tại một điểm ngắt chính xác.
display: none
giải pháp cho đến nay là thích hợp và hữu ích nhất.
display: inline-block; width: 1em;
đó thay vì none
.
<br class='foo'>
nếu bạn cần kiểm soát nhiều hơn nhưng đừng quá điên rồ!
<br/>
là tuyệt vời ở những gì nó làm; Không cần phải phát minh lại bánh xe. Cảm ơn!
Có một số tùy chọn để xác định việc xử lý khoảng trắng và ngắt dòng. Nếu một người có thể đặt nội dung vào ví dụ như một <p>
thẻ, thì khá dễ dàng để có được bất cứ thứ gì họ muốn.
Để bảo toàn ngắt dòng nhưng không sử dụng khoảng trắng, hãy sử dụng pre-line
(không pre
) như trong:
<style>
p {
white-space: pre-line; /* collapse WS, preserve LB */
}
</style>
<p>hello
How are you</p>
Nếu muốn có một hành vi khác, hãy chọn một trong những hành vi này (WS = WhiteSpace, LB = LineBreak):
white-space: normal; /* collapse WS, wrap as necessary, collapse LB */
white-space: nowrap; /* collapse WS, no wrapping, collapse LB */
white-space: pre; /* preserve WS, no wrapping, preserve LB */
white-space: pre-wrap; /* preserve WS, wrap as necessary, preserve LB */
white-space: inherit; /* all as parent element */
Lệnh "\ a" trong CSS tạo ra lợi nhuận vận chuyển. Đây là CSS, không phải HTML, vì vậy nó sẽ gần hơn với những gì bạn muốn: không đánh dấu thêm .
Trong một blockquote, ví dụ bên dưới hiển thị cả tiêu đề và liên kết nguồn và phân tách hai cái bằng trả về vận chuyển ( "\a"
):
blockquote[title][cite]:after {
content:attr(title)"\a"attr(cite)
}
display:flex
và do đó là một hack trong bối cảnh này). Nó không lạ mắt, thực sự, chỉ là một kỹ thuật hiện đại. Nếu bạn muốn đánh dấu chính xác giống nhau, nhưng thực sự phản ứng khác nhau đó là cách để đi.
"
- không sử dụng các trích dẫn đơn giản '
vì bạn muốn cho phép \a
phân tích cú pháp dưới dạng một ký tự đặc biệt.
Tại CSS sử dụng mã
p {
white-space: pre-line;
}
Với mã này css, mỗi lần nhập bên trong thẻ P sẽ là một dòng ngắt tại html.
Dựa trên những gì đã nói trước đây, đây là một giải pháp CSS thuần túy hoạt động.
<style>
span {
display: inline;
}
span:before {
content: "\a ";
white-space: pre;
}
</style>
<p>
First line of text. <span>Next line.</span>
</p>
input type='text', wrapping the input, and then laying the text over it with a wrapper
div nhiều dòng . That also requires
: none; `trên :before
để vẫn có thể nhấp vào nút bên dưới.
<pre> <---------------------------------------
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
</pre> <--------------------------------------
HOẶC LÀ
<div style="white-space:pre"> <-----------------------------------
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
</div> <-----------------------------------
Để làm cho một phần tử có một ngắt dòng sau đó, gán nó:
display:block;
Các phần tử không nổi sau phần tử mức khối sẽ xuất hiện trên dòng tiếp theo. Nhiều phần tử, chẳng hạn như <p> và <div> đã là các phần tử mức khối để bạn chỉ có thể sử dụng các phần tử đó.
Nhưng trong khi điều này là tốt để biết, điều này thực sự phụ thuộc nhiều hơn vào bối cảnh nội dung của bạn. Trong ví dụ của bạn, bạn sẽ không muốn sử dụng CSS để buộc ngắt dòng. <br /> là phù hợp vì về mặt ngữ nghĩa, thẻ p là phù hợp nhất cho văn bản bạn đang hiển thị. Thêm đánh dấu chỉ để treo CSS nó là không cần thiết. Về mặt kỹ thuật, đây không chính xác là một đoạn văn, nhưng không có thẻ <hello>, vì vậy hãy sử dụng những gì bạn có. Mô tả nội dung của bạn tốt với HTMl là cách quan trọng hơn - sau khi bạn có được điều đó thì hãy tìm ra cách làm cho nó trông thật đẹp.
Đây là một giải pháp tồi cho một câu hỏi tồi, nhưng một câu trả lời đúng theo nghĩa đen:
p {
width : 12ex;
}
p:before {
content: ".";
float: right;
padding-left: 6ex;
visibility: hidden;
}
ex
là gì? p
và e
không phải là gần trên bàn phím, đó là lý do tại sao tôi hỏi
Các câu trả lời khác cung cấp một số cách tốt để thêm ngắt dòng, tùy thuộc vào tình huống. Nhưng cần lưu ý rằng :after
bộ chọn là một trong những cách tốt hơn để làm điều này để kiểm soát CSS đối với danh sách các liên kết (và những thứ tương tự), vì những lý do được ghi chú dưới đây.
Đây là một ví dụ, giả sử một bảng nội dung:
<style type="text/css">
.toc a:after{ content: "\a"; white-space: pre; }
</style>
<span class="toc">
<a href="#a1">Item A1</a> <a href="#a2">Item A2</a>
<a href="#b1">Item B1</a> <a href="#b2">Item B2</a>
</span>
Và đây là kỹ thuật của Simon_Weaver, đơn giản hơn và tương thích hơn. Nó không tách biệt phong cách và nội dung nhiều, đòi hỏi nhiều mã hơn và có thể có trường hợp bạn muốn thêm dấu ngắt sau thực tế. Vẫn là một giải pháp tuyệt vời, đặc biệt là đối với IE cũ.
<style type="text/css">
.toc br{ display: none; } /* comment out for horizontal links */
</style>
<span class="toc">
<a href="#a1">Item A1</a><br/> <a href="#a2">Item A2</a><br/>
<a href="#b1">Item B1</a><br/> <a href="#b2">Item B2</a><br/>
</span>
Lưu ý ưu điểm của các giải pháp trên:
pre
)display:block
bình luận của NickG )float
hoặc clear
phong cách ảnh hưởng đến nội dung xung quanh<br/>
hoặc pre
với các ngắt mã hóa cứng)a.toc:after
và<a class="toc">
Đặt br
thẻ thành display: none
hữu ích, nhưng sau đó bạn có thể kết thúc bằng WordsRunTogether. Tôi đã thấy hữu ích hơn khi thay thế nó bằng một nhân vật không gian, như vậy:
HTML:
<h1>
Breaking<br />News:<br />BR<br />Considered<br />Harmful!
</h1>
CSS:
@media (min-device-width: 1281px){
h1 br {content: ' ';}
h1 br:after {content: ' ';}
}
br
để display: inline-block; width: 1em;
ngăn các từ chạy cùng nhau khi đi ngang.
Làm thế nào về <pre>
thẻ?
<pre>
để nó phá vỡ dòng. Nếu bạn muốn có khoảng trắng thường xuyên thì sao?
Bạn có thể thêm rất nhiều phần đệm và buộc văn bản được chia thành dòng mới, ví dụ
p{
padding-right: 50%;
}
Làm việc tốt với tôi trong một tình huống với thiết kế đáp ứng, trong đó chỉ trong một phạm vi chiều rộng nhất định, văn bản cần được phân chia.
Bạn cần khai báo nội dung bên trong <span class="class_name"></span>
. Sau đó, dòng sẽ bị phá vỡ.
\A
có nghĩa là ký tự nguồn cấp dữ liệu.
.class_name::after {
content: "\A";
white-space: pre;
}
Cả hai câu trả lời của Vincent Robert và Joey Adams đều hợp lệ. Tuy nhiên, nếu bạn không muốn thay đổi đánh dấu, bạn chỉ cần chèn một<br />
javascript bằng cách sử dụng.
Không có cách nào để làm điều đó trong CSS mà không thay đổi đánh dấu.
:after
hoặc :before
để làm điều đó.
Tôi đoán bạn không muốn sử dụng điểm dừng vì nó sẽ luôn phá vỡ dòng. Đúng không? Nếu vậy, làm thế nào về việc thêm một điểm dừng <br />
trong văn bản của bạn, sau đó cung cấp cho nó một lớp giống như <br class="hidebreak"/>
sau đó sử dụng truy vấn phương tiện ngay trên kích thước bạn muốn nó phá vỡ để ẩn <br />
để nó phá vỡ ở một chiều rộng cụ thể nhưng vẫn nằm trên chiều rộng đó.
HTML:
<p>
The below line breaks at 766px.
</p>
<p>
This is the line of text<br class="hidebreak"> I want to break.
</p>
CSS:
@media (min-width: 767px) {
br.hidebreak {display:none;}
}
"Tip: The <br> tag is useful for writing addresses or poems."
Mã có thể là
<div class="text-class"><span>hello</span><span>How are you</span></div>
CSS sẽ là
.text-class {
display: flex;
justify-content: flex-start;
flex-direction: column;
align-items: center;
}
Đừng. Nếu bạn muốn ngắt dòng cứng, sử dụng một.
display: block;
.
<br />
yếu tố tồn tại vì một lý do rất tốt. Nếu bạn muốn ngắt dòng vì chúng là các đoạn riêng biệt, thì chỉ cần đánh dấu chúng là các đoạn riêng biệt.