Кладочная сетка на бутстрапе - PullRequest
0 голосов
/ 09 марта 2019

Я быстро запрограммировал эту вещь с помощью boostrap: http://alexisgargaloni.fr/archive/ Она отлично работает, но по некоторым причинам я думаю, что лучше сделать систему сетки изображений с каменной кладкой.Итак, я реализовал Masonry в своем коде, но по какой-то причине он выглядит очень маленьким: http://alexisgargaloni.fr/archive/index%20copie.html

У кого-то есть идея?

<!DOCTYPE html>
<html lang="fr">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="keywords" content=" design, concept, print, affichage, web, web design, identity, graphic design, graphisme, graphic, poster, duperre">
    <meta name="description" content="Graphic design student at the Ecole Duperré Paris.">

    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/style.css">

    <title></title>
</head>

<body>
    <div class="container-fluid">
        <div class="grid">
            <div class="grid-sizer col-sm-3">
            
                <!-- raynox du707TCH 1200 -->
            <div class="grid-item col-sm-4">
            <div class="grid-item-content">

                <div id="carouselraynoxdu707TCH1200" class="carousel" data-ride="carousel">
                    <div class="carousel-inner">
                        <div class="carousel-item active">
                            <img class="d-block w-100" src="images/raynoxdu707TCH1200_noroll.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/raynoxdu707TCH1200_front.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/raynoxdu707TCH1200_wroll.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/raynoxdu707TCH1200_closed.jpg" alt="">
                        </div>
                    </div>

                    <!-- Controls -->
                    <a class="carousel-control-prev" href="#carouselraynoxdu707TCH1200" data-slide="prev">
                        <i class="cursor-icons">keyboard_arrow_left</i>
                    </a>
                    <a class="carousel-control-next" href="#carouselraynoxdu707TCH1200" data-slide="next">
                        <i class="cursor-icons">keyboard_arrow_right</i>
                    </a>
                </div>
                <p> Raynox DU707TCH 1200</p>
</div>
            </div>

            <!-- kahnel koilmatic sd8 -->
            <div class="grid-item col-sm-4">
                <div class="grid-item-content">
                <div id="carouselkahnelkoilmaticsd8" class="carousel" data-ride="carousel">
                    <div class="carousel-inner">
                        <div class="carousel-item active">
                            <img class="d-block w-100" src="images/kahnelkoilmaticsd8_box_front.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/kahnelkoilmaticsd8_box_side.jpg" alt="">
                        </div>
                    </div>

                    <!-- Controls -->
                    <a class="carousel-control-prev" href="#carouselkahnelkoilmaticsd8" data-slide="prev">
                        <i class="cursor-icons">keyboard_arrow_left</i>
                    </a>
                    <a class="carousel-control-next" href="#carouselkahnelkoilmaticsd8" data-slide="next">
                        <i class="cursor-icons">keyboard_arrow_right</i>
                    </a>
                </div>
                <p> Kahnel koilmatic SD8</p>
                </div>
            </div>
            
            <!-- super 8 film roll -->
           <div class="grid-item col-sm-4">
               <div class="grid-item-content">
                <div id="carouselsuper8filmroll" class="carousel" data-ride="carousel">
                    <div class="carousel-inner">
                        <div class="carousel-item active">
                            <img class="d-block w-100" src="images/super8filmroll.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/super8filmroll_closed.jpg" alt="">
                        </div>
                    </div>

                    <!-- Controls -->
                    <a class="carousel-control-prev" href="#carouselsuper8filmroll" data-slide="prev">
                        <i class="cursor-icons">keyboard_arrow_left</i>
                    </a>
                    <a class="carousel-control-next" href="#carouselsuper8filmroll" data-slide="next">
                        <i class="cursor-icons">keyboard_arrow_right</i>
                    </a>
                </div>
                <p> Super 8 film roll</p>
               </div>
            </div>
            
            <!-- rollei P3250 -->
           <div class="grid-item col-sm-4">
               <div class="grid-item-content">
                <div id="carouselrolleiP3250" class="carousel" data-ride="carousel">
                    <div class="carousel-inner">
                        <div class="carousel-item active">
                            <img class="d-block w-100" src="images/rolleiP3250_front.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/rolleiP3250_side.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/rolleiP3250_top.jpg" alt="">
                        </div>
                    </div>

                    <!-- Controls -->
                    <a class="carousel-control-prev" href="#carouselrolleiP3250" data-slide="prev">
                        <i class="cursor-icons">keyboard_arrow_left</i>
                    </a>
                    <a class="carousel-control-next" href="#carouselrolleiP3250" data-slide="next">
                        <i class="cursor-icons">keyboard_arrow_right</i>
                    </a>
                </div>
                <p> Rollei P3250</p>
               </div>
            </div>
                
                <!-- rollei P3250 -->
           <div class="grid-item col-sm-4">
               <div class="grid-item-content">
                <div id="carouselrolleiP3250" class="carousel" data-ride="carousel">
                    <div class="carousel-inner">
                        <div class="carousel-item active">
                            <img class="d-block w-100" src="images/rolleiP3250_front.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/rolleiP3250_side.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/rolleiP3250_top.jpg" alt="">
                        </div>
                    </div>

                    <!-- Controls -->
                    <a class="carousel-control-prev" href="#carouselrolleiP3250" data-slide="prev">
                        <i class="cursor-icons">keyboard_arrow_left</i>
                    </a>
                    <a class="carousel-control-next" href="#carouselrolleiP3250" data-slide="next">
                        <i class="cursor-icons">keyboard_arrow_right</i>
                    </a>
                </div>
                <p> Rollei P3250</p>
               </div>
            </div>
                
                <!-- rollei P3250 -->
           <div class="grid-item col-sm-4">
               <div class="grid-item-content">
                <div id="carouselrolleiP3250" class="carousel" data-ride="carousel">
                    <div class="carousel-inner">
                        <div class="carousel-item active">
                            <img class="d-block w-100" src="images/rolleiP3250_front.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/rolleiP3250_side.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/rolleiP3250_top.jpg" alt="">
                        </div>
                    </div>

                    <!-- Controls -->
                    <a class="carousel-control-prev" href="#carouselrolleiP3250" data-slide="prev">
                        <i class="cursor-icons">keyboard_arrow_left</i>
                    </a>
                    <a class="carousel-control-next" href="#carouselrolleiP3250" data-slide="next">
                        <i class="cursor-icons">keyboard_arrow_right</i>
                    </a>
                </div>
                <p> Rollei P3250</p>
               </div>
            </div>
                
                <!-- rollei P3250 -->
           <div class="grid-item col-sm-4">
               <div class="grid-item-content">
                <div id="carouselrolleiP3250" class="carousel" data-ride="carousel">
                    <div class="carousel-inner">
                        <div class="carousel-item active">
                            <img class="d-block w-100" src="images/rolleiP3250_front.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/rolleiP3250_side.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/rolleiP3250_top.jpg" alt="">
                        </div>
                    </div>

                    <!-- Controls -->
                    <a class="carousel-control-prev" href="#carouselrolleiP3250" data-slide="prev">
                        <i class="cursor-icons">keyboard_arrow_left</i>
                    </a>
                    <a class="carousel-control-next" href="#carouselrolleiP3250" data-slide="next">
                        <i class="cursor-icons">keyboard_arrow_right</i>
                    </a>
                </div>
                <p> Rollei P3250</p>
               </div>
            </div>
                
                <!-- rollei P3250 -->
           <div class="grid-item col-sm-4">
               <div class="grid-item-content">
                <div id="carouselrolleiP3250" class="carousel" data-ride="carousel">
                    <div class="carousel-inner">
                        <div class="carousel-item active">
                            <img class="d-block w-100" src="images/rolleiP3250_front.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/rolleiP3250_side.jpg" alt="">
                        </div>
                        <div class="carousel-item">
                            <img class="d-block w-100" src="images/rolleiP3250_top.jpg" alt="">
                        </div>
                    </div>

                    <!-- Controls -->
                    <a class="carousel-control-prev" href="#carouselrolleiP3250" data-slide="prev">
                        <i class="cursor-icons">keyboard_arrow_left</i>
                    </a>
                    <a class="carousel-control-next" href="#carouselrolleiP3250" data-slide="next">
                        <i class="cursor-icons">keyboard_arrow_right</i>
                    </a>
                </div>
                <p> Rollei P3250</p>
               </div>
            </div>
            </div>   
        </div>

<br>
        <br>
        <br>
        <div class="row index justify-content-between">
            <div class="col-auto">
                <a href="index.html">Archive</a>
            </div>
            <div class="col-auto">
                <a href="about.html">About</a>
            </div>
        </div>
    </div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="js/masonry.pkgd.min.js"></script>
<script type="text/javascript">
    $('.grid').masonry({
        itemSelector: '.grid-item', // use a separate class for itemSelector, other than .col-
        columnWidth: '.grid-sizer',
        percentPosition: true
    });
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/imagesloaded.pkgd.min.js"></script>
    <script> var $grid = $('.grid').imagesLoaded( function() {
  // init Masonry after all images have loaded
  $grid.masonry({
    // options...
  });
}); </script>
</body>

</html>

Ответы [ 2 ]

2 голосов
/ 09 марта 2019

Сначала вы должны заставить работать макет Masonry, а затем попытаться вставить его в контейнер начальной загрузки, чтобы избежать любых проблем с двумя системами макетов, мешающих друг другу.

Я сократил ваш HTML доминимум, необходимый для работы масонства, а также удаление карусели.Вот что я имел в виду под «минимальным, полным и проверяемым примером»:

<!DOCTYPE html>
<html>

    <head>
        <style>
            .grid-item { width: 200px; }
            .grid-item img { width: 90%; }
        </style>
    </head>

    <body>
        <div class="grid">
            <div class="grid-item">
                <img class="d-block w-100" src="http://alexisgargaloni.fr/archive/images/raynoxdu707TCH1200_wroll.jpg" alt="">
                <p> 1 Raynox DU707TCH 1200</p>
            </div>
            <div class="grid-item">
                <img class="d-block w-100" src="http://alexisgargaloni.fr/archive/images/raynoxdu707TCH1200_wroll.jpg" alt="">
                <p> 2 Raynox DU707TCH 1200</p>
            </div>
            <div class="grid-item">
                <img class="d-block w-100" src="http://alexisgargaloni.fr/archive/images/raynoxdu707TCH1200_wroll.jpg" alt="">
                <p> 3 Raynox DU707TCH 1200</p>
            </div>
            <div class="grid-item">
                <img class="d-block w-100" src="http://alexisgargaloni.fr/archive/images/raynoxdu707TCH1200_wroll.jpg" alt="">
                <p> Raynox DU707TCH 1200</p>
            </div>
        </div>
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        <script src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>    
        <script type="text/javascript">
            $('.grid').masonry({
                columnWidth: 200
            });
        </script>

    </body>

</html>

В нижней части HTML-кода вы дважды инициализируете код масонства, используя два разных стиля.Требуется только один:

<script src="js/masonry.pkgd.min.js"></script>
<script type="text/javascript">
    $('.grid').masonry({
        itemSelector: '.grid-item',
        columnWidth: '.grid-sizer',  <<-- I don't think this will work, for now use a number
        percentPosition: true
    });
</script>

...

<script src="js/imagesloaded.pkgd.min.js"></script>
    <script> var $grid = $('.grid').imagesLoaded( function() {
  // init Masonry after all images have loaded
  $grid.masonry({
    // options...
  });
}); </script>

В документации говорится

Все размеры элементов обрабатываются вашим CSS.

но я не смог найти размер, указанный в вашем CSS.

Как только вы начнете работать с основным масонством, начните добавлять карусели и т. Д. И посмотрите, не сломается ли он.Затем вы можете исправить одну вещь за один раз.

Здесь вы смешиваете две системы макетов, одну на основе столбцов (Bootstrap), а другую, используя систему «наилучшего соответствия».Если все ваши изображения имеют одинаковый размер и ориентацию, макет каменной кладки мало поможет, когда он принудительно помещается в контейнер Bootstrap фиксированной ширины.

1 голос
/ 09 марта 2019

После просмотра примеров, приведенных на веб-сайте Masonry, я обнаружил, что div "grid-sizer col-sm-3" должен быть закрыт сразу после того, как в нем ничего нет, пока я не включил в него все свои элементы. Проблема решена.

...