Yêu cầu thg 9 22, 2021 3:50 SA 186 1 1
  • 186 1 1
+1

Hỏi về dựng layouts

Chia sẻ
  • 186 1 1

Chào mn. Mình đang muốn dựng layouts như hình dưới thì nên dùng gì cho hợp lý nhỉ? Mong mọi người gợi ý ạ

Mình đang thử dùng flex thì nó bị khoảng trắng như thế này ạ 😕

Avatar TAMIX @tuananhbfs
thg 9 23, 2021 3:28 SA

cái này chia 2 cột trái phải trước, rồi mỗi cột bạn xem là 1 layout nhỏ để code tiếp.

Avatar TAMIX @tuananhbfs
thg 9 23, 2021 3:31 SA
  <div class="flex">
    <div class="flex-left">
      <div class="row1">
        <div class="content"></div>
      </div>
      <div class="row2">
        <div class="row2-flex">
          <div class="row2-flex-left">
             <div class="content"></div>
          </div>
          <div class="row2-flex-right">
             <div class="content"></div>
          </div>
          <div class="row2-flex-left">
             <div class="content"></div>
          </div>
          <div class="row2-flex-right">
             <div class="content"></div>
          </div>
          <div class="row2-flex-left">
             <div class="content"></div>
          </div>
          <div class="row2-flex-right">
             <div class="content"></div>
          </div>
          
     
          
        </div>
      </div>
    </div>
    <div class="flex-right">
        <div class="row1">
             <div class="content"></div>
             <div class="content"></div>
             <div class="content"></div>
             <div class="content"></div>
          </div>

    </div>
  </div>
Avatar TAMIX @tuananhbfs
thg 9 23, 2021 3:32 SA

trong cái .row2 thì dùng thư viện masonry như bạn Kim đã nói

Avatar quang hải @sven_9x
thg 9 23, 2021 3:36 SA

@tuananhbfs như này thì sẽ ko theo thứ tự bài

1 2 3
4 5 6 

đúng ko bạn? Mà sẽ la thứ tự

1 4 7
2 5 8
3 6 9
Avatar quang hải @sven_9x
thg 9 23, 2021 3:36 SA

@tuananhbfs vì bài này sẽ lấy data từ api ý bạn

Avatar TAMIX @tuananhbfs
thg 9 23, 2021 3:42 SA

@sven_9x uhm. Nhìn hình chụp thì mình đoán là html theo kiểu đó. Còn thứ tự các bài viết thì mình có thể chủ động query ra theo ý muốn mà.

Avatar TAMIX @tuananhbfs
thg 9 23, 2021 3:44 SA

data1: (2),4,5,7,8,10,11.. data2: (2),3,6,9,12... số 2 đặt trên hay dưới tùy mình .

Avatar quang hải @sven_9x
thg 9 23, 2021 4:21 SA

@tuananhbfs mình đang muốn theo thứ tự 1 2 3 4 5 6 ý bạn 😦

Avatar quang hải @sven_9x
thg 9 23, 2021 4:22 SA

@tuananhbfs mình xem mấy cái mansory toàn ko custom đc cái item đầu với width chiếm 2 phần

Avatar TAMIX @tuananhbfs
thg 9 23, 2021 4:27 SA

@sven_9x vậy mình nghĩ bạn phải tự viết thư viện mới giải quyết dc. Data và html cần dc xử lý linh hoạt chứ ko cần khư khư là data cho sao html phải theo vậy. Tiết kiệm thời gian là tiết kiệm tiền bạc mà.

Avatar TAMIX @tuananhbfs
thg 9 23, 2021 4:29 SA

nếu dc bạn cho mình xin link cái layout để xem họ dùng cách nào với nhé.

Avatar quang hải @sven_9x
thg 9 23, 2021 5:37 SA

@tuananhbfs à cái này là mình lấy từ design. chứ ko phải 1 trang có rồi

Avatar quang hải @sven_9x
thg 9 23, 2021 5:38 SA

@tuananhbfs uhm. thế nên mình mới đang hỏi xem mọi người có cách giải quyết nào phù hợp ko 😦

1 CÂU TRẢ LỜI


Đã trả lời thg 9 22, 2021 6:55 SA
Đã được chấp nhận
0

Loại layout này mình nhớ được gọi tên là Masonry. Bạn search trên Google sẽ ra nhiều cách implement nhé. Nếu đang tự viết theo Flexbox thì bạn tham khảo bài này: https://css-tricks.com/piecing-together-approaches-for-a-css-masonry-layout/

Mình thấy có cái lib là vue-masonry nhưng cũng chưa dùng thử. Bạn cũng tham khảo thêm nha.

Chia sẻ
Avatar quang hải @sven_9x
thg 9 22, 2021 7:00 SA

tks b nhiều

thg 9 22, 2021 7:01 SA

@sven_9x you're welcome 😃

Avatar quang hải @sven_9x
thg 9 22, 2021 7:50 SA

@huukimit mình thử mà nó ko đc như ý. b có thể demo giúp mình 1 cái đc ko b? Cho các khối với màu thôi cũng đc 😦

thg 9 24, 2021 1:50 SA

@sven_9x Bạn đã implement theo hướng trên được chưa?

Avatar quang hải @sven_9x
thg 9 24, 2021 1:51 SA

@huukimit chưa bạn ạ. mình ko set được cái phần tử đầu tiên chiếm diện tích lớn so với các cái còn lại 😕

thg 9 24, 2021 2:03 SA
Avatar quang hải @sven_9x
thg 9 24, 2021 2:14 SA

@huukimit oh. đúng rồi đó bạn. những item 2,3,4 nếu mình ko set ví dụ grid-row: span 1; grid-row: span 2. thì nó sẽ follow height theo độ dài content à bạn?

thg 9 24, 2021 2:18 SA

@sven_9x bạn bỏ cái grid-auto-rows của cái container đi thử nhé.

Avatar quang hải @sven_9x
thg 9 24, 2021 2:22 SA

@huukimit oke bạn. để mình thử. tks bạn nhiều nhé

Avatar quang hải @sven_9x
thg 9 24, 2021 2:23 SA

@huukimit bạn có thể tham khảo này bạn @tuananhbfs

Avatar quang hải @sven_9x
thg 9 24, 2021 2:26 SA

@huukimit mình thấy các item khi bỏ như bạn bảo cái grid-auto-rows thì có khoảng trắng b ạ

image.png

Avatar quang hải @sven_9x
thg 9 25, 2021 1:53 SA

@sven_9x b ơii

Avatar TAMIX @tuananhbfs
thg 10 13, 2021 9:44 SA

@sven_9x dính covid mới về. Dùng Grid thì nó sẽ bị 1 điểm yếu đó là phải có Row. các item khác column mà trên cùng row sẽ bị ràng buộc chứ ko falling tự nhiên. Bạn sẽ ko thể đạt được việc xếp chồng theo cột như hình. Capture.PNG

Bạn có thể dùng tạm nó nếu kiểm soát dc số line của dòng mô tả (title?) .

Avatar quang hải @sven_9x
thg 10 14, 2021 2:11 SA

@tuananhbfs dùng tạm gì nhỉ b?

Avatar TAMIX @tuananhbfs
thg 10 15, 2021 10:53 SA

@sven_9x dùng tạm cái của bạn Nguyễn Hữu Kim đó, nếu "nếu kiểm soát dc số line của dòng mô tả (title?) ."

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí