Có cách nào để ngăn ngắt dòng sau div bằng css không?
Ví dụ tôi có
<div class="label">My Label:</div>
<div class="text">My text</div>
và muốn nó hiển thị như sau:
Nhãn của tôi: Văn bản của tôi
Câu trả lời:
display:inline;
HOẶC LÀ
float:left;
HOẶC LÀ
display:inline-block;
- Có thể không hoạt động trên tất cả các trình duyệt.
Mục đích sử dụng a div
ở đây là gì? Tôi đề xuất một span
, vì nó là một phần tử cấp nội tuyến, trong khi a div
là một phần tử cấp khối.
Lưu ý rằng mỗi tùy chọn ở trên sẽ hoạt động khác nhau.
display:inline;
sẽ biến div
thành tương đương với a span
. Nó sẽ không bị ảnh hưởng bởi margin-top
, margin-bottom
, padding-top
, padding-bottom
, height
,, vv
float:left;
giữ nguyên div
như một phần tử cấp khối. Nó vẫn sẽ chiếm không gian như thể nó là một khối, tuy nhiên chiều rộng sẽ được phù hợp với nội dung (giả sử width:auto;
). Nó có thể yêu cầu một clear:left;
hiệu ứng nhất định.
display:inline-block;
là lựa chọn "tốt nhất của cả hai thế giới". Các div
được coi là một yếu tố ngăn chặn. Nó phản ứng với tất cả các margin
, padding
và height
quy tắc như mong đợi cho một yếu tố ngăn chặn. Tuy nhiên, nó được coi như một phần tử nội tuyến với mục đích đặt bên trong các phần tử khác.
Đọc cái này để biết thêm thông tin.
Các div
phần tử là các phần tử khối, vì vậy theo mặc định, chúng có chiều rộng có sẵn đầy đủ.
Một cách là biến chúng thành các phần tử nội tuyến:
.label, .text { display: inline; }
Điều này sẽ có tác dụng tương tự như sử dụng span
các phần tử thay vì các div
phần tử.
Một cách khác là làm nổi các phần tử:
.label, .text { float: left; }
Điều này sẽ thay đổi cách quyết định độ rộng của các phần tử, do đó thwy sẽ chỉ rộng bằng nội dung của chúng. Nó cũng sẽ làm cho các yếu tố trôi nổi bên cạnh nhau, tương tự như cách hình ảnh chảy bên cạnh nhau.
Bạn cũng có thể xem xét thay đổi các yếu tố. Phần div
tử được thiết kế để phân chia tài liệu, tôi thường sử dụng một label
và một span
phần tử cho một cấu trúc như thế này:
<label>My Label:</label>
<span>My text</span>
div được sử dụng để cung cấp cấu trúc cho một trang web hoặc chứa nhiều văn bản hoặc phần tử, nhưng bạn dường như sử dụng chúng làm nhãn, bạn nên sử dụng span, nó sẽ tự động đặt cả hai văn bản bên cạnh nhau và bạn sẽ không cần phải viết mã css cho nó.
Và ngay cả khi người khác yêu cầu bạn thả nổi các phần tử, tốt nhất bạn nên thay đổi các thẻ.
<div id="hassaan">
<div class="label">My Label:</div>
<div class="text">My text</div>
</div>
CSS:
#hassaan{ margin:auto; width:960px;}
#hassaan:nth-child(n){ clear:both;}
.label, .text{ width:480px; float:left;}
Thử áp dụng clear:none
thuộc tính css cho nhãn.
.label {
clear:none;
}
div
vẫn có mặc định width:auto
khiến nó chiếm tất cả chiều rộng có sẵn.
Tôi đã nhiều lần thành công để có được div mà không có dấu ngắt dòng sau chúng, bằng cách thử với thuộc tính float css và thuộc tính width css.
Tất nhiên sau khi tìm ra giải pháp, bạn phải thử nghiệm nó trên tất cả các trình duyệt và trong mỗi trình duyệt, bạn phải kích thước lại các cửa sổ để đảm bảo rằng nó hoạt động trong mọi trường hợp.