2011-11-18 44 views
23

Tôi đãXóa khối nội tuyến?

.centered-holder { 
    margin-left: auto; 
    margin-right: auto; 
    clear: left; 
    display: inline-block; 
} 

Sau đó

<div class="centered-holder">misc content 1</div> 
<div class="centered-holder">misc content 2</div> 
<div class="centered-holder">misc content 3</div> 

Tôi chỉ muốn một tối đa trên mỗi dòng, điều này thực sự có thể bằng cách nào đó? Đó là một ứng dụng iPhone HTML5 để hạn chế trình duyệt cũ hơn không phải là vấn đề.

+4

Lệnh 'tài sản clear' sẽ yếu tố duy nhất ảnh hưởng đến nổi, bạn không có gì nổi. – animuson

+0

thực sự rõ ràng không cần phải được áp dụng cho một phần tử thả nổi, bạn có thể áp dụng nó vào một phần tử nội tuyến để ngăn chặn nó xuất hiện. tôi cần một số giải pháp so sánh – Baconbeastnz

+0

Không cần phải áp dụng nó cho phần tử * float *, nhưng nó chỉ xóa các phần tử * float *. Nó sẽ không 'xóa' một phần tử khối nội tuyến vì nó không phải là 'nổi' ở bên trái hoặc bên phải.Nếu bạn muốn chúng trên các dòng riêng biệt, giải pháp bên dưới sẽ hoạt động. Có lẽ bạn có thể cung cấp một ví dụ tốt hơn về những gì bạn đang cố gắng làm. – animuson

Trả lời

36

Depend tờ khai CSS của bạn và đánh dấu của bạn, nhưng bạn có thể cố gắng để đưa tuyên bố CSS này trên thùng mẹ:

white-space: pre-line; 

Với phương pháp này bạn tránh để chuyển đổi .centered-holder đến một yếu tố ngăn chặn, và bạn vẫn có thể sử dụng ví dụ: text-align:center trên vùng chứa chính.


pre-line - Giá trị này sẽ gây ra các chuỗi khoảng trắng sụp đổ thành một nhân vật không gian duy nhất. Ngắt dòng sẽ xảy ra ở bất kỳ nơi nào cần thiết để điền vào các hộp dòng và tại các dòng mới trong đánh dấu (hoặc tại lần xuất hiện của "\ a" trong nội dung được tạo). Nói cách khác, nó giống như bình thường ngoại trừ việc nó sẽ tôn vinh ngắt dòng rõ ràng.

Bạn có thể tìm thêm thông tin ở đây về white-space:


Để hoàn tất, bạn có thể sử dụng các tờ khai CSS:

.parent-container { 
    white-space: pre-line /* Create new line for each DIV */; 
    line-height:0 /* Mask the extra lines */; 
    *white-space: pre /*FixIE7*/; 
    *word-wrap: break-word /*FixIE7*/; 
} 

.centered-holder { 
    display: inline-block; 
    line-height:100% /* Restore a default line-height */; 
    *display: inline /*FixIE7*/; 
    *zoom: 1 /*FixIE7*/; 
} 

Tôi thấy câu hỏi này rất thú vị, vì vậy tôi cũng cung cấp các khai báo CSS cho IE6-7 (pre-lineinline-block các bản sửa lỗi). Nó phải hữu ích cho một số người khác có vấn đề tương tự.

+3

Câu trả lời hay ...... + 1 – anglimasS

+1

Cảm ơn câu trả lời tuyệt vời:) Tìm ra bạn cũng có thể có các khối trong dải nội dung chính của bạn, sau đó whack text-align: center; về họ. Sau đó đặt các khối nội tuyến bên trong. Bằng cách làm điều này nội dung của bạn là trung tâm (vì khối cha mở rộng chiều rộng, và trung tâm các khối nội tuyến bên trong) – Baconbeastnz

+0

bạn sở hữu nó bro :)! –

4

Nếu bạn xóa display: inline-block;, chúng sẽ chồng xếp chồng lên nhau.

Yếu tố cấp khối bắt đầu trên một dòng mới và DIV là cấp khối theo mặc định.

+1

Tôi biết điều đó. điều là tôi đã có văn bản căn chỉnh: trung tâm trên container của tôi gây ra tôi thích khả năng tự động định tâm, có vẻ như tôi có thể phải làm điều này với JS – Baconbeastnz

+0

Bạn luôn có thể thêm: .centered holder: after { content : "\ A"; } Dường như một bản hack. – enduro

1

Hoặc bạn chỉ có thể thêm một div duy nhất có khối hiển thị sau khối nội tuyến.

.centered-holder { 
    margin-left: auto; 
    margin-right: auto; 
    clear: left; 
    display: inline-block; 
} 
.clear-inline { 
    display: block; 
} 

Sau đó

<div class="centered-holder">misc content 1</div> 
<div class="clear-inline"></div> 
<div class="centered-holder">misc content 2</div> 
<div class="clear-inline"></div> 
<div class="centered-holder">misc content 3</div> 
<div class="clear-inline"></div> 
+3

Đó là thực tế xấu và rất hacky. – 30secondstosam

+3

Vâng, đây là CSS IS. Hacky là tên thứ hai. – zundi

+1

Điều này cũng có thể được thực hiện với giả, làm cho nó hơi ít hacky. Xem http://codepen.io/ivancamilov/pen/jqmWEL –

Các vấn đề liên quan