2012-06-25 30 views
13

tôi nhận thấy rằng chrome đã xóa số trên của tôi list-mục khi tôi thêm css để thao tác cột-count ...Tại sao sử dụng cột CSS3 trong Chrome loại bỏ số mục trên danh sách

Ví dụ:

<ol style =-webkit-column-count: 2;..."> 
    .... 
</ol> 

Ở trên không quản lý để tràn của li vào một cột riêng biệt như dự định nhưng nó loại bỏ số mục mặc định là tốt. Điều này không xảy ra trong Firefox, chỉ có chrome.

Bất kỳ ý tưởng nào?

+0

Bạn có thể làm một jsFiddle xin – eivers88

+0

Tôi không thể nói rằng tôi đã sử dụng jsFiddle trước, bạn chỉ muốn xem khối html và css thích hợp? – Noz

+0

Có, chỉ cần một giải trí đơn giản của vấn đề sẽ giúp ích. jsFiddle tương đối dễ sử dụng, khi bạn thêm vào html và css, hãy nhấp vào nút lưu, sau đó nhấp vào chia sẻ và sao chép liên kết đến đây. – eivers88

Trả lời

11

Bạn luôn có thể chỉ cần ném <div> xung quanh <ol> và cung cấp cho <div> nhiều cột thay vì <ol>.

<div style = -webkit-column-count: 2;...><ol> 
    .... 
</ol></div> 

Khi tôi làm điều đó, tuy nhiên, tôi kết thúc với cột thứ hai là một dòng cao hơn cột thứ nhất vì một lý do nào đó. Cũng chỉ xảy ra trong Chrome.

Edit: Giải pháp cho vấn đề trên của tôi chỉ là để thêm một biên độ zero cho <ol>, vì vậy đây sẽ làm việc tốt:

<div style = -webkit-column-count: 2;...><ol style = margin: 0;> 
    .... 
</ol></div> 

Lạ lùng thay, có một số padding trên <ol> dường như thoát khỏi con số là tốt, vì vậy nếu bạn có padding một nơi nào đó có thể là thủ phạm.

+0

Tôi nghĩ rằng nó đã kết thúc được padding như tôi đã chơi xung quanh với điều đó tại một thời điểm và tôi nhận thấy rằng các con số đột nhiên xuất hiện một ngày. Hoặc là nó đã tự sửa. – Noz

+0

Xem câu trả lời từ câu hỏi này http://stackoverflow.com/questions/12357468/how-to-fix-list-style-not-showing-when-using-css3-columns-on-webkit. Đây là một giải pháp tốt như khi bạn nhận được hơn 10 mục danh sách, đánh số có thể trở thành căn trái có thể làm cho nội dung thẻ li trông không đúng. – Remy

11

Dường như số thực sự bị ẩn. Điều này có thể được giải quyết bằng cách sử dụng các tài sản sau đây:

OL { 
    list-style-position: inside; 
} 
4

Thường style sheet của một người sẽ có một thiết lập lại html, trong đó có một thiết lập lại padding: 0; vào các mặt hàng trong danh sách.

trong khi những điều sau đây, bởi Stéphane hoạt động giống như một nét duyên dáng,

ul { 
    list-style-position: inside; 
} 

bạn cũng có thể cung cấp cho mục danh sách của bạn một padding-left:

padding-left: 16px; 
+0

Lúc đầu, tôi đã không nghĩ rằng điều này làm việc, nhưng sau đó tôi nhận ra trong trường hợp của tôi, tôi cần phải thêm nhiều hơn chỉ 16px đệm. Cảm ơn! – Travis

2

Đối với một số phong cách danh sách lý do vị trí bên ngoài các phần tử (mặc định) được ẩn khi bạn áp dụng quy tắc column-width. Dưới đây là cách tốt nhất tôi có thể đưa ra để thử và mô phỏng hành vi 'được mong đợi' trong Chrome dựa trên các câu trả lời khác và thử nghiệm của riêng tôi.

Demo

HTML

<div class="col-wrapper"> 
    <ol> 
     <li>1</li> 
     <li>2</li> 
     <li>3</li> 
     <li>4</li> 
     <li>5</li> 
     <li>6</li> 
     <li>7</li> 
     <li>8</li> 
    </ol> 
</div> 

CSS

.col-wrapper { 
    -moz-column-width: 200px; 
    -moz-column-gap: 1em; 
    -webkit-column-width: 200px; 
    -webkit-column-gap: 1em; 
    column-width: 200px; 
    column-gap: 1em; 

    /* (optional) use ol's margin here */ 
    margin-top: 16px; 
} 

.col-wrapper ol { 
    /* clear top margin of ol */ 
    margin-top: 0; 
} 
Các vấn đề liên quan