Đôi khi sử dụng <BR /> có tệ không?


157

Có đôi khi xấu khi sử dụng <BR/>thẻ?

Tôi hỏi bởi vì một số lời khuyên đầu tiên mà nhóm phát triển của tôi dành cho tôi là: Đừng sử dụng <BR/>; thay vào đó, sử dụng các phong cách. Nhưng tại sao? Có kết quả tiêu cực khi sử dụng <BR/>thẻ?


10
Cách tốt nhất để tìm câu trả lời tốt nhất là đến nhóm nhà phát triển của bạn và hỏi họ TẠI SAO?
azamsharp

47
Có phải tất cả đều bất ngờ là điều sai trái khi cố gắng đưa câu trả lời ra khỏi StackOverflow thay vì các thành viên trong nhóm không?
Nosredna

7
Không, đó chỉ là ai đó đã cho anh ta một câu trả lời chủ quan và anh ta yêu cầu chúng tôi đoán lý do đằng sau nó ... Chỉ cần đi và hỏi người đưa ra câu trả lời chủ quan, đặc biệt nếu họ ở gần (trong cùng một nhóm phát triển)
Gabriel Magana

8
Thông thường "lời khuyên đầu tiên" xuất hiện khi nhân viên mới. Một nhân viên mới không phải lúc nào cũng cảm thấy muốn hỏi "tại sao?" Rõ ràng, có những lúc tốt nhất để hỏi tại sao, nhưng tôi nghĩ Burak Ozdogan có thể hiểu "lý do" sau khi đọc những câu hỏi này. Hoặc ít nhất là hiểu những gì cộng đồng HTML nói về những điều lớn về chủ đề này đủ để thảo luận về nó. Tôi muốn nói rằng anh ấy đã di chuyển đến đây để hỏi.
Nosredna

5
Tôi hiểu lời khuyên của bạn và loại bạn là chính xác. Nhưng điều quan trọng là khi bạn vào một nhóm mới, rất nhiều đầu vào bạn nhận được trong một thời gian ngắn. Và một số trong số họ chỉ được đề cập; giống như một chi tiết được đưa ra trong ngoặc đơn. Tôi muốn hỏi nó ở đây vì hai lý do: Để có câu trả lời và xem các ý kiến ​​khác nhau làm thế nào để tiếp cận nó. cảm ơn các bạn!
bút chìCake

Câu trả lời:


172

Lý do chính cho việc không sử dụng <br>là nó không phải là ngữ nghĩa . Nếu bạn muốn hai mục trong các khối hình ảnh khác nhau, có lẽ bạn muốn chúng trong các khối logic khác nhau.

Trong hầu hết các trường hợp, điều này có nghĩa là chỉ sử dụng các yếu tố khác nhau, ví dụ <p>Stuff</p><p>Other stuff</p>, sau đó sử dụng CSS để sắp xếp các khối một cách hợp lý.

Có những trường hợp có <br>giá trị về mặt ngữ nghĩa, nghĩa là các trường hợp ngắt dòng là một phần của dữ liệu bạn đang gửi. Điều này thực sự chỉ giới hạn trong 2 trường hợp sử dụng - thơ và địa chỉ gửi thư.


38
Cá nhân, tôi thích sử dụng <pre/>cho thơ. Bằng cách này, bạn xác định rõ ràng rằng mục đích là để giữ thành phần ban đầu, bao gồm cả các vết lõm có thể.
Michał Górny

6
@ MichałGórny nêu lên một điểm tốt - <br>dường như chỉ phù hợp khi áp dụng tất cả các điều kiện sau: 1. Dòng mới có ý nghĩa về mặt ngữ nghĩa, 2. Ấn định không có ý nghĩa về mặt ngữ nghĩa (nếu không bạn nên sử dụng a <pre>, 3. Không tồn tại phù hợp về mặt ngữ nghĩa nào khác thẻ, như một đoạn văn hoặc thẻ tiêu đề. Các địa chỉ gửi thư đáp ứng cả ba điều kiện này và lời bài hát cũng vậy. Thơ có thể vi phạm điều kiện 'thụt lề' không có ý nghĩa ', và vì vậy có thể được đặt tốt hơn trong một <pre>.
Mark Amery

2
Điều gì về việc sử dụng <br />trong việc đăng nhập của một email, chẳng hạn như: <footer>Sincerely,<br />StrexCorp</footer> Ý kiến?
JHS

109

Tôi nghĩ rằng nhóm phát triển của bạn đang đề cập đến <br />thay cho khoảng cách lề. Để tạo khoảng trống giữa các thành phần, hãy sử dụng kiểu đệm / lề thông qua CSS.

Sử dụng không đúng cách <br />:

<div>
   Content
</div>
<br />
<br />
<br />
<br />
<div>
     More content...
</div>

Sử dụng tốt <br />:

<style>
     div {
          margin-top:10px;
     }
</style>

<div>
   Content<br />
   Line break
</div>

<div>
     More content...
</div>

4
Bạn không thể xóa <br> của bạn và thêm CSS, bởi vì nếu bạn đã xóa <br> của bạn thì không có gì để tạo kiểu. Thật không hữu ích khi nói "xóa dấu ngắt dòng của bạn" mà không giúp (theo nghĩa đen) điền vào chỗ trống
Gareth

7
Bạn nói đúng, iamkoa, nhưng điều này không giải thích tại sao . Do đó nó không trả lời câu hỏi. 24 upvote có vẻ hơi nhiều.
Các cuộc đua nhẹ nhàng trong quỹ đạo

@iamkoa Bạn không giải thích được tại sao .
Fabian Picon

Tôi nghĩ rằng tùy chọn thứ hai tốt hơn vì sạch sẽ hơn và đơn giản hơn Tôi nghĩ không cần sử dụng br
simon

26

Nói chung, <br/>là một dấu hiệu của HTML ngữ nghĩa kém. Trường hợp phổ biến nhất là sử dụng <br/>để khai báo phân tách đoạn, có nhiều cách tốt hơn để thực hiện nó về mặt ngữ nghĩa. Xem Giường và BReakfast .

Có những lúc nó là thẻ thích hợp để sử dụng, nhưng nó thường bị lạm dụng đủ để mọi người chấp nhận tâm lý "không sử dụng" để ép buộc tư duy ngữ nghĩa tốt hơn.


13

Nhóm của bạn có nghĩa là gì khi không sử dụng <br> để phân chia giữa các đoạn.

<p>I am a paragraph</p>
<p>I am a second paragraph</p>

là cách tốt hơn để làm điều đó, bởi vì sau đó bạn có thể dễ dàng điều chỉnh khoảng trắng giữa các đoạn thông qua CSS. Ngoài ra, tôi không thể nghĩ bất cứ điều gì nói lại về ngắt dòng như vậy.


9

Khái niệm tương tự áp dụng cho lý do tại sao chúng ta không sử dụng bảng để bố trí - sử dụng bảng cho bảng và CSS để bố trí.

Sử dụng <br/>cho các dòng ngắt trong một khối văn bản và CSS nếu bạn muốn ảnh hưởng đến bố cục.


4

Việc chỉ định bố cục trực tiếp gây khó khăn cho việc điều chỉnh trang web cho các kích thước trang hoặc phông chữ khác nhau chẳng hạn.


2

Nói chung, tôi sẽ luôn đặt lề và phần đệm phù hợp cho các phần tử bằng CSS - nó ít lộn xộn hơn nhiều so với vô số <br />thứ khác ngoài việc chính xác hơn về mặt ngữ nghĩa.

Có lẽ là lần duy nhất tôi sẽ sử dụng <br />ưu tiên cho lề và phần đệm được đặt bởi CSS, ngay cả khi nó không đúng về mặt kỹ thuật, là nếu đó là một sự cố riêng lẻ khi cần thêm không gian. Nếu tôi có một biểu định kiểu khá lớn và dường như không đáng để thiết lập một kiểu bổ sung chỉ cho lần xuất hiện đó, tôi có thể sử dụng một <br />kiểu một lần.

Giống như hầu hết mọi thứ, <br />không phải là một điều xấu khi cung cấp chúng được sử dụng đúng cách.


1

Tôi cố gắng viết đánh dấu của mình theo cách dễ đọc với CSS bị vô hiệu hóa. Nếu bạn chỉ sử dụng BR để thêm khoảng cách, tốt hơn là sử dụng lề và phần đệm.


1

<br />chỉ nên được sử dụng cho ngắt dòng và không áp dụng kiểu cho trang. Ví dụ, nếu bạn cần thêm không gian giữa các đoạn, hãy cho chúng một lớp và áp dụng phần đệm thêm cho các đoạn. Đừng dàn trải đoạn văn của bạn với<br /><br ><br />


1

Chúng được sử dụng để đại diện cho dòng mới. Chỉ có bấy nhiêu thôi. Không lấp đầy không gian như tại trang web địa chất trung bình. Tuy nhiên, chỉ có một trường hợp trong đó chúng thể hữu ích cho các mục đích khác ngoài việc đặt một dòng mới: để xóa phao.

<br style="clear: both;">

1
Mặc dù được sử dụng, phương pháp này không hợp lệ XHTML.
iamkoa

2
Bạn thường có thể khắc phục "hack" này bằng cách sử dụng overflow:autophần tử có chứa thay thế.
mở

2
@iamkoa: Tôi không sử dụng XHTML. HTML là HTML, không phải XML.
BalusC

1

Không sử dụng ba hoặc nhiều lần liên tiếp <br>, đó là tín hiệu bạn đang sử dụng chúng cho mục đích phong cách và không, bạn không nên.

Một số người sẽ nói một lần <br>là đủ và thay vì hai bạn nên sử dụng <p></p>, nhưng có những tình huống (ví dụ như màn hình) trong đó bạn muốn giới thiệu một khoảng dừng dài hơn mà không ngụ ý thay đổi chủ đề hoặc bắt đầu một giai đoạn mới, như một đoạn văn thường làm.


0

Chúng ổn, nếu được sử dụng một cách thích hợp. Chẳng hạn, bạn không nên sử dụng chúng thay cho các <p>thẻ hoặc để tạo khoảng cách giữa các thành phần. Có lẽ bạn đang làm gì đó sai nếu bạn có hai lần liên tiếp.


0

Nếu bạn làm điều này: <BR/> <BR/>

Bạn sẽ nhận được bố cục khác nhau trên các trình duyệt khác nhau.

Sâu hơn:
Nếu bạn sử dụng <BR/>chỉ để ngắt dòng - ok.
Nếu bạn sử dụng <BR/>như một miếng đệm dòng - không ổn.


0

Dưới đây là một ví dụ về cách <br>có thể ảnh hưởng tiêu cực đến kiểu dáng (chạy đoạn trích cho hình ảnh)

(lưu ý nút không đúng và không gian lẻ ở bên phải):

button {
  width: 70px;
  height: 70px;
}
#arrows {
  border: solid thin red;
  display: inline-block;
}
#arrows span:first-of-type { 
  text-align: center; 
  display: block;
}
#moveUp {
  margin: 0;
}
/* In the current case instead of <br> use display */
/*
#arrows span:last-of-type { 
  display: block;
}
*/
<div id="arrows">
  <span>
    <button id="moveUp" value="üles">&uarr;</button> 
  </span>
  <button id="moveLeft" value="vasakule">&larr;</button> 
  <button id="moveDown" value="alla">&darr;</button> 
  <button id="moveRight" value="paremale">&rarr;</button> 
  <br>    <!-- note the shifted button and odd space on right -->
  <span>or move with keyboard arrows</span>
</div>


-2

Trong HTML (lên đến HTML 4): sử dụng <br>
trong HTML 5: <br> được ưa chuộng, nhưng <br/><br />cũng là chấp nhận được
trong XHTML: <br /> được ưa thích. Cũng có thể sử dụng <br/>hoặc<br></br>

Vì vậy, việc sử dụng <br>thẻ là HTML hoàn toàn hợp lệ. Nhưng sử dụng <br>không được khuyến khích?

Lý do chính tại sao không sử dụng <br>là vì nó không phải là thẻ ngữ nghĩa và không có nội dung bên trong. Sử dụng của nó có thể tránh được như,

<p>some<br>text<p>

có thể được đánh dấu lên mà không có <br>như

 <p>some</p>
 <p>text<p>

Nếu bạn đang sử dụng <br>các mục đích khác như khoảng cách trên cùng, vv có thể đạt được thông qua thuộc margintính CSS .


1
Lưu ý rằng việc sử dụng <p> sẽ thêm lề ~ 16px vào đầu và cuối. Đặt lề của mỗi thẻ <p> thành 0px để tránh khoảng cách các dòng sử dụng nhiều chiều cao hơn mức cần thiết.
Satbir Kira
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.