2013-02-27 32 views
14

Tôi có div chứa chứa hai mục: a .button.box với văn bản bên trong. .button đến trước và được thả nổi bên phải. .box không có float [đây là một ràng buộc - tôi không thể trôi nổi nó do các cấu trúc khác tương tự phụ thuộc vào không có float]. .boxoverflow: hidden; để thiết lập bối cảnh định dạng khối mới. Điều này cho phép .box kéo dài "100% tối đa" phần tử thả nổi trước, .button.Firefox ngắt dòng bất ngờ bằng cách sử dụng nổi & tràn ẩn

.outer-container chứa tất cả những thứ này và được thả nổi bên phải.

http://jsfiddle.net/6qAwA/5/

Trong Chrome (26.0.1410.12 beta-m PC, Mac 25.0.1364.99), Safari (6.0.2 Mac), và IE8-9, điều này sẽ hành động một cách mong muốn. Văn bản của .box nằm trên một dòng và do phao phải của .outer-container, sẽ chính xác với kích thước cần thiết. Tuy nhiên, trong Firefox, văn bản được chia thành một dòng khác.

Tôi cũng tìm thấy một vấn đề tương tự khi .button là thay vì lưu hành trái - Tôi nhận được mong muốn hành vi trong tất cả mọi thứ trừ cho Firefox.

Tôi đã xem Firefox 16.0.1 và 19.0 cho PC và 18.0.1 và 19.0 cho Mac. Đây có phải là một lỗi?

Trả lời

5

Thêm display: inline-block;-.box:

Demo

+1

Điều này hoạt động chính xác với mục đích của Fiddle gốc, nhưng tiếc là nó không chính xác những gì tôi đang tìm kiếm, vì tôi cần "thùng chứa bên ngoài" linh hoạt hơn một chút. Nếu '.outer-container' không được thả nổi,' .box' sẽ vẫn còn "100% lên đến" phần tử được lưu trước đó vì 'overflow: hidden;', trong khi toàn bộ điều đó kéo dài 100%. [imgur] (http://i.imgur.com/MLtLMjp.png), [new Fiddle không có inline-block] (http://jsfiddle.net/6qAwA/11/) – Chris

+0

OK .. Tôi cho rằng trong trường hợp có một '.box', tôi có thể gặp ở giữa và sử dụng một bộ chọn cụ thể hơn để thêm' display: inline-block; '. [new Fiddle] (http://jsfiddle.net/6qAwA/16/). Nó vẫn còn lạ mặc dù, và tôi không biết rằng sửa chữa này làm cho vấn đề có vẻ như bất kỳ ít hơn của một lỗi trong FF. – Chris

0

Trên thực tế, khi bạn đang đi kiếm một giải pháp như http://jsfiddle.net/Volker_E/x5rPd/ bạn không cần một giây div cho hành vi của bạn mong muốn.

+0

Điều này cũng có ý nghĩa đối với vấn đề ban đầu, nhưng với mục đích của dự án tôi đang làm việc, cần phải có phần tử cấp khối đó. – Chris

41

Tôi đã xem qua vấn đề này ngày hôm nay nơi nút nổi sẽ phá vỡ dòng chỉ trong Firefox thậm chí sau khi cài đặt nó display-inline-block và lý do cho điều đó là nút chứa có một thiết lập phong cách của white-space thiết lập để nowrap . Vì vậy, đặt lại giá trị của white-space thành normal trên nút chứa vùng chứa đã giải quyết vấn đề này cho tôi.

+2

Điều này làm việc cho tôi - phần tử vùng chứa là một nút và đặt nó thành 'không gian trắng: bình thường' đã khắc phục sự cố. Cảm ơn! –

+1

Hoạt động. Nhưng tại sao? đặc biệt là vì nó có vẻ điên rồ mà nowrap làm cho nó bọc để dòng tiếp theo ... –

+0

Nếu bạn cần 'nowrap' cho container của bạn, sau đó tôi muốn đề nghị giải pháp này: http://stackoverflow.com/a/26306907/2550529 – SepehrM

0

white-space: normal không thực hiện thủ thuật cho tôi. Những gì đã làm việc là white-space: nowrap; trên vùng chứa văn bản trực tiếp.

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