2013-06-15 17 views
7

Khi kích thước trình duyệt được thay đổi/trên các thiết bị có kích thước khác nhau, tôi cần một tập hợp các phần tử html có tất cả các ngữ nghĩa liên quan để giữ nguyên và di chuyển trong một khối. Đó là, nếu một trong những yếu tố di chuyển đến "hàng" tiếp theo do họ không đủ chiều rộng để chứa toàn bộ nhóm, TẤT CẢ của nó nên di chuyển xuống.Có thể nhóm một tập hợp các phần tử html để chúng di chuyển cùng nhau không?

IOW, đây giống như thuộc tính "giữ liên tục" mà một số nhóm mục trong tài liệu xử lý văn bản có.

Để có một chút cụ thể hơn, nói rằng tôi có bộ sưu tập của các yếu tố sau:

1) an anchor tag, filling out a first "column" 
2) a collection of tags, to the right of the anchor tag, consisting of: 
(a) a div, followed by a <br/> 
(b) a cite, followed by a <br/> 
(c) another div, followed by a <br/> 
(d) two or three anchor tags that are aligned side-by-side at the bottom of the second "column" 

Vì vậy, để tổng hợp, nếu không có đủ chỗ cho các "cột" thứ hai trong một "liên tiếp, "thay vì giữ trong cột" đầu tiên "và di chuyển các phần tử trong cột thứ hai xuống hàng" tiếp theo ", cột đầu tiên phải tuân thủ các anh chị em của nó và luôn ở trên cùng một hàng" "với chúng (I "đặt" hàng "và" cột "trong dấu ngoặc kép bởi vì tôi không sử dụng một bảng html, và những người chỉ tồn tại trong một ý nghĩa ảo).

Nếu bạn đang tìm kiếm này một ít khó khăn để hình dung (Tôi không đổ lỗi cho bạn), hãy kiểm tra các fiddle: http://jsfiddle.net/W7CYC/8/

Lưu ý: gói các nhóm thành html5 s không giúp đỡ.

Dưới đây là các mã:

HTML:

<div class="yearBanner">2013</div> 
<section> 
<a id="mainImage" class="floatLeft" href="http://rads.stackoverflow.com/amzn/click/0299186342"><img height="240" width="160" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"></a> 

    <div id="prizeCategory" class="category">BIOGRAPHY</div> 
    <br/> 
<cite id="prizeTitle" class="title">Son of the Wilderness: The Life of John Muir</cite> 

    <br/> 
    <div id="prizeArtist" class="author">Linnie Marsh Wolfe</div> 
    <br/> 
    <img class="floatLeft" height="60" width="40" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"> 
    <img class="floatLeft" height="60" width="40" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"> 
    <img class="floatLeft" height="60" width="40" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"> 
</section> 
<section> 
<a class="floatLeft" href="http://rads.stackoverflow.com/amzn/click/0299186342"><img height="240" width="160" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"></a> 

    <div class="category">BIOGRAPHY</div> 
    <br/> 
<cite class="title">Son of the Wilderness: The Life of John Muir</cite> 

    <br/> 
    <div class="author">Linnie Marsh Wolfe</div> 
    <br/> 
    <img height="60" width="40" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"> 
    <img height="60" width="40" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"> 
    <img height="60" width="40" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"> 
</section> 

CSS:

body { 
    background-color: black; 
} 
.floatLeft { 
    float: left; 
    padding-right: 20px; 
    padding-left: 5px; 
} 
.yearBanner { 
    font-size: 3em; 
    color: white; 
    font-family: Verdana, Arial, Helvetica, sans-serif; 
    float: left; 
    padding-top: 64px; 
} 
.category { 
    display: inline-block; 
    font-family: Consolas, sans-serif; 
    font-size: 2em; 
    color: Orange; 
    width: 160px; 
} 
.title { 
    display: inline-block; 
    font-family: Calibri, Candara, serif; 
    color: Yellow; 
    width: 160px; 
} 
.author { 
    display: inline-block; 
    font-family: Courier, sans-serif; 
    font-size: 0.8em; 
    color: White; 
    width: 160px; 
} 

jQuery:

$('#prizeCategory').text("Changed Category"); 
$('#prizeTitle').text("Changed Title that spans two rows"); 
$('#prizeArtist').text("Changed Author and co-author"); 
$('#mainImage img').attr("src", "http://ecx.images-amazon.com/images/I/61l0rZz6mdL._SY300_.jpg"); 
$('#mainImage img').attr("height", "200"); 
+1

lẽ viết trước/sau bức tranh, như tôi đã không có ý tưởng wat bạn được mô tả ở đây, và tôi đã đọc qua toàn bộ bài . –

+0

Vâng, ảnh chụp màn hình hiển thị những gì bạn muốn nó trông giống như sẽ tạo ra sự khác biệt lớn. Khó để nói vào thời điểm này chính xác những gì bạn đang tìm kiếm để làm. –

+0

Bạn chỉ đang cố gắng thu thập mọi thứ bên trong thẻ

để được nhóm lại với nhau sao cho toàn bộ phần tử kết thúc tốt đẹp với dòng tiếp theo? –

Trả lời

4
mục

Bạn nhóm đơn giản với div (hoặc nếu bạn muốn sử dụng section, cũng được.) Với một chút gợi ý về CSS bạn có thể nhóm mục bên trong trình bao bọc. Thật không may, không có thuộc tính như vậy hơn giữ cùng nhưng bạn có thể làm như sau:

section.wrapper { 
    min-width: 400px; /* Minimum width of your wrapper element */ 
    overflow: hidden; 
    display: inline-block; 
} 

min-width giúp bạn để giữ cho các yếu tố bên trong wrapper theo thứ tự. Chọn một giá trị phù hợp nhất với tình huống của bạn.
tràn với giá trị ẩn cho phép trình bao bọc của bạn hiểu và thêm giá trị chiều rộng và chiều cao của các phần tử nổi bên trong.
hiển thị với giá trị inline-block để cho tất cả các giấy gói để đặt cạnh nhau miễn là có đủ không gian, nếu không, wrapper nhảy đến hàng khác.

http://www.w3schools.com/ phục vụ các nguồn tuyệt vời để hiểu và học CSS, HTML và công nghệ web nói chung. Rất hữu dụng.

EDIT
Như tôi đã chỉnh sửa, min-width hoặc rộng phù hợp tốt hơn trong tình huống đó hơn max-width

+0

Có lẽ tôi hiểu sai về cách thực hiện điều này, nhưng tôi đã thêm lớp này vào CSS của mình và thêm class = "wrapper" vào phần tử phần, nhưng một trong những hình ảnh trong phần đầu tiên vẫn di chuyển xuống hàng thứ hai. Xem http://jsfiddle.net/W7CYC/10/ –

+0

Ồ, tôi xin lỗi. Thay vì 'max-width', bạn nên sử dụng thuộc tính' min-width'. Của tôi xấu, hy vọng rằng sẽ giúp :) –

1

Bootstrap lưới

Bootstrap bao gồm một hệ thống lưới flexbox điện thoại di động đầu tiên mạnh mẽ cho bố trí xây dựng của tất cả các hình dạng và kích cỡ. Nó dựa trên bố cục 12 cột và có nhiều cấp, một cho mỗi phạm vi truy vấn phương tiện. Bạn có thể sử dụng nó với hỗn hợp Sass hoặc các lớp được xác định trước của chúng tôi.

mã ví dụ:

<div class="row"> 
    <div class="col-4">.col-4</div> 
    <div class="col-4">.col-4</div> 
    <div class="col-4">.col-4</div> 
    </div> 

    <div class="row"> 
    <div class="col-sm-4">.col-sm-4</div> 
    <div class="col-sm-4">.col-sm-4</div> 
    <div class="col-sm-4">.col-sm-4</div> 
    </div> 

    <div class="row"> 
    <div class="col-md-4">.col-md-4</div> 
    <div class="col-md-4">.col-md-4</div> 
    <div class="col-md-4">.col-md-4</div> 
    </div> 

    <div class="row"> 
    <div class="col-lg-4">.col-lg-4</div> 
    <div class="col-lg-4">.col-lg-4</div> 
    <div class="col-lg-4">.col-lg-4</div> 
    </div> 

    <div class="row"> 
    <div class="col-xl-4">.col-xl-4</div> 
    <div class="col-xl-4">.col-xl-4</div> 
    <div class="col-xl-4">.col-xl-4</div> 
    </div> 

Output: Đây là đầu ra mặc định: enter image description here và khi kích thước của trình duyệt của tôi giảm xuống dưới 1200px enter image description here

Ở đây chúng ta có bốn hàng và coum hàng đầu tiên sẽ luôn luôn ở cùng một tow.

hàng thứ hai sẽ vẫn khi chiều rộng tối đa là> = 768px

hàng thứ ba sẽ vẫn khi chiều rộng tối đa là> = 992px và do đó on.I đã chèn các chi tiết này trong G rids tùy chọn

đây là một bản demo gif sản lượng

enter image description here

bạn có thể trộn các lớp học này together.for dụ

<div class="row"> 
    <div class="col-sm-4 col-xs-6">first-col</div> 
    <div class="col-sm-4 col-xs-3">second-col</div> 
    <div class="col-sm-4 col-xs-3">third-col</div> 
    </div> 

có nghĩa là nếu các thiết bị nhỏ tôi muốn ba cột giống nhau nhưng với thiết bị rất nhỏ, tôi muốn col đầu tiên là một nửa không gian và mỗi cột khác là 25% với.

Bây giờ bạn có thể thấy mọi hành vi mỗi hàng và mọi cột nên làm và nếu bạn muốn luôn di chuyển cùng nhau, bạn có thể sử dụng các lớp col-* không có tiền tố. lưới Tùy chọn

   (<768px) (≥768px) (≥992px)  (≥1200px) 
Grid behavior Horizontal at all times Collapsed to start, horizontal above breakpoints 
Container width None (auto) 750px  970px   1170px 
Class prefix .col-xs- .col-sm- .col-md-  .col-lg- 
# of columns 12 
Column width Auto  ~62px  ~81px ~97px 
Gutter width 30px (15px on each side of a column) 
Nestable  Yes 
Offsets   Yes 
Column ordering Yes 

Here là chi tiết hơn nếu bạn cần

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