Yêu cầu Sep 22nd, 2021 3:50 a.m. 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
Sep 23rd, 2021 3:28 a.m.

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
Sep 23rd, 2021 3:31 a.m.
  <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
Sep 23rd, 2021 3:32 a.m.

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

Avatar quang hải @sven_9x
Sep 23rd, 2021 3:36 a.m.

@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
Sep 23rd, 2021 3:36 a.m.

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

Avatar TAMIX @tuananhbfs
Sep 23rd, 2021 3:42 a.m.

@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
Sep 23rd, 2021 3:44 a.m.

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
Sep 23rd, 2021 4:21 a.m.

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

Avatar quang hải @sven_9x
Sep 23rd, 2021 4:22 a.m.

@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
Sep 23rd, 2021 4:27 a.m.

@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
Sep 23rd, 2021 4:29 a.m.

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
Sep 23rd, 2021 5:37 a.m.

@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
Sep 23rd, 2021 5:38 a.m.

@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 Sep 22nd, 2021 6:55 a.m.
Đã đượ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
Sep 22nd, 2021 7:00 a.m.

tks b nhiều

Sep 22nd, 2021 7:01 a.m.

@sven_9x you're welcome 😃

Avatar quang hải @sven_9x
Sep 22nd, 2021 7:50 a.m.

@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 😦

Sep 24th, 2021 1:50 a.m.

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

Avatar quang hải @sven_9x
Sep 24th, 2021 1:51 a.m.

@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 😕

Sep 24th, 2021 2:03 a.m.
Avatar quang hải @sven_9x
Sep 24th, 2021 2:14 a.m.

@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?

Sep 24th, 2021 2:18 a.m.

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

Avatar quang hải @sven_9x
Sep 24th, 2021 2:22 a.m.

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

Avatar quang hải @sven_9x
Sep 24th, 2021 2:23 a.m.

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

Avatar quang hải @sven_9x
Sep 24th, 2021 2:26 a.m.

@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
Sep 25th, 2021 1:53 a.m.

@sven_9x b ơii

Avatar TAMIX @tuananhbfs
Oct 13th, 2021 9:44 a.m.

@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
Oct 14th, 2021 2:11 a.m.

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

Avatar TAMIX @tuananhbfs
Oct 15th, 2021 10:53 a.m.

@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í