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ẻ?
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ẻ?
Câu trả lời:
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ư.
<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ể.
<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>
.
<br />
trong việc đăng nhập của một email, chẳng hạn như: <footer>Sincerely,<br />StrexCorp</footer>
Ý kiến?
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>
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.
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.
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.
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.
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.
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.
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 có 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;">
overflow:auto
phần tử có chứa thay thế.
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.
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.
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">↑</button>
</span>
<button id="moveLeft" value="vasakule">←</button>
<button id="moveDown" value="alla">↓</button>
<button id="moveRight" value="paremale">→</button>
<br> <!-- note the shifted button and odd space on right -->
<span>or move with keyboard arrows</span>
</div>
Trong HTML (lên đến HTML 4): sử dụng <br>
trong HTML 5: <br>
được ưa chuộng, nhưng <br/>
và <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 margin
tính CSS .