简体   繁体   English

使用php loop WordPress的响应框布局

[英]Responsive Boxes layout using php loop WordPress

I'm displaying 4 coupons in a single row. 我要在一行中显示4张优惠券。 Some coupons don't have description, expiry date etc but I need all coupons to be of the same size. 一些优惠券没有说明,有效期等,但我需要所有优惠券的大小均相同。

I tried to apply different CSS Snippets but I couldn't make them of same size. 我尝试应用不同的CSS代码段,但无法使它们的大小相同。 I also play around PHP code scripts but hard luck. 我也玩PHP代码脚本,但运气不好。

function clipmydeals_display_grid_coupon($id) {
<article id="coupon-grid-<?php echo $id; ?>"<?php post_class('card '.get_post_meta($id, 'cmd_type', true)); ?>>

<div class="card-body" style="z-index:2;">
<?php if(!empty(get_post_meta($id, 'cmd_valid_till', true)))
 { ?>

<div class="badge badge-<?php echo $validity_color; ?>">
 <?php 
echo __('Ends ','clipmydeals').' '.date("jS F Y",strtotime(get_post_meta($id, 'cmd_valid_till', true))); ?>

</div>
<?php } ?>



    <div>
    <?php
    if ( is_single($id) or get_theme_mod('coupon_page','yes')=='no') :
    ?>
    <h3 class="card-title text-center mt-0 pb-0">
     <?php echo get_the_title($id); ?></h3>
    <?php
    else :
    ?>

    <h3 class="card-title text-center mt-0 pb-0">
   <a href="<?php echo esc_url( get_permalink($id) ); ?>" rel="bookmark">
   <?php echo get_the_title($id); ?>
   </a>
      </h3>

      </div>

    <div class="text-center">
    <?php
    // BUTTON
        clipmydeals_button($id, 'grid', $store_slug, $store_custom_fields);
    ?>
    </div>


       <div class="card-text mt-4"><?php the_content(); ?></div>

      <div class="small mt-0 mb-1">
    <?php
    $sep = '';
    if(!is_tax('stores')) { echo get_the_term_list( $id, 'stores','',', ',''); $sep = ','; } // stores
          ?>
       </div> 


       <?php
    if(get_theme_mod('location_taxonomy',false) and get_theme_mod('show_coupon_locations','all') != 'no') 
      {$location_html = array();
    $terms = get_the_terms( $id, 'locations'); // locations
    if($terms and !is_wp_error($terms)) {
    foreach($terms as $term) {
                            if(get_theme_mod('location_taxonomy',false) and get_theme_mod('show_coupon_locations','all')=='all' or $term->parent == 0) {
                                $location_html[] = ' <a href="'.get_term_link($term).'">'.$term->name.'</a>';
    }
    }
    }
    if(!empty($location_html)) {
         ?>

     <div class="small mt-0 mb-1">
<i class="fa fa-map-marker"></i><?php echo implode(', ',$location_html); ?>
    </div>

             <?php
        }
        }
        ?>


        <?php
        if(!empty(get_post_meta($id, 'cmd_verified_on', true))
                    or
            (comments_open($id) and 
                     get_theme_mod('coupon_page','yes')=='yes')
            ) {
        ?>
        <div>




            <?php if(comments_open($id) and get_theme_mod('coupon_page','yes')=='yes') { ?><div class="float-right">
<a class="card-link" href="<?php echo esc_url(get_permalink()).'#comments'; ?>">
   <i class="fa fa-comment"></i>         <?php $comment_count = wp_count_comments($id); echo $comment_count->approved; ?>
        </a>

          </div>
             <?php } ?>

           <?php echo do_shortcode( '[addtoany]' ); ?>

        </div>
        <?php } ?>

        </div> <!--End card-body-->

    </article><!-- #post-## -->
    <?php
}

I expect each box must readjust itself automatically depends upon the size of previous box or the other way around. 我希望每个盒子都必须自动调整自身,具体取决于上一个盒子的大小或其他情况。 They must look like symmetric. 它们必须看起来像对称的。

My actual result 我的实际结果

我的实际结果

You can set a min-height of the item card to keep the sizing the same for each box. 您可以设置项目卡片的最小高度 ,以使每个盒子的尺寸保持相同。

In this example i've used flex-box to create the horizontal line of cards. 在此示例中,我使用了弹性盒来创建纸牌的水平线。 Flex-box is great for adding article cards and post lists in a gridded outcome. Flex-box非常适合在网格结果中添加文章卡和帖子列表。

Run the code snippet to view the outcome... 运行代码片段以查看结果...

 * { box-sizing: border-box; } body { max-width: 980px; margin: 1em auto; font-size: 20px; line-height: 1.5; } .card { text-align: center; background-color: #333333; color: #fff; padding: 1em; border-radius: 3px; min-height: 400px; margin: 1em; } .row { display: flex; flex-wrap: wrap; margin: 0 .5em; } .column { flex: 1; } /* Column Spans */ .column--2of5 { flex: 0 0 40%; } .column--1of2 { flex: 0 0 50%; } .column--3of5 { flex: 0 0 60%; } .column--2of3 { flex: 0 0 66.6666%; } .column--3of4 { flex: 0 0 75%; } .column--4of5 { flex: 0 0 80%; } 
 <div class="row"> <div class="column"> <div class="card"> item here </div> </div> <div class="column"> <div class="card"> item here </div> </div> <div class="column"> <div class="card"> item here </div> </div> <div class="column"> <div class="card"> item here </div> </div> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM