адаптивные сетки для мобильных устройств jquery

#jquery #css #jquery-mobile #media-queries

#jquery #css #jquery-мобильный #медиа-запросы

Вопрос:

Я создаю мобильное приложение jquery и хочу реализовать адаптивный дизайн с тремя столбцами. Боковые столбцы — это просто наполнители, как instagram. Боковые столбцы становятся минимальной шириной на маленьком экране, например, 10%, на большом экране они могут занимать 25% пространства.

Стиль:

 .min-width-320px .leftcol, .max-width-480px .leftcol {
        width:10%;
}

.min-width-480px .leftcol, .max-width-768px .leftcol {
        width:25%;
}

.leftcol { 
    position:relative;
    top:-10px;
    left:-10px;
    float:left;
    width:220px;  /* for IE5/WIN */
    voice-family: ""}"";
    voice-family:inherit;
    margin:0 0 -10px 0;
    padding:10px;
    background:#e9e9e9;
    z-index:100;
    border-right:1px solid #bebebe;
    height:100%;
}

.min-width-320px .rightcol, .max-width-480px .rightcol {
        width:10%;
}

.min-width-480px .rightcol, .max-width-768px .rightcol {
        width:25%;
}

.rightcol {
    position:relative;
    top:-10px;
    right:-10px;
    float:right;
    voice-family: ""}"";
    voice-family:inherit;
    width:220px; /* actual value */
    margin:0 0 -10px 0;
    padding:10px;
    background:#e9e9e9;
    z-index:99;
    border-left:1px solid #bebebe;
    height:100%;
    }

#centercol {
    position:relative;
    padding:0 240px;
    background:#dadbdc;
    }
  

И в теле в разделе основного содержимого

     <div id="leftcol" class="leftcol"><!-- begin leftcol -->
            amp;nbsp;
        </div><!-- end leftcol -->

        <div id="rightcol" class="rightcol"><!-- begin rightcol -->
            amp;nbsp;</p>          

        </div><!-- end righttcol -->

        <div id="centercol"><!-- begin centercol -->
            This is center col
        </div><!-- end centercol -->
  

но когда я пробую это на небольшом разрешении, это не изменяет размер содержимого.

Ответ №1:

Использование сеток с медиа-запросами решило проблему

код находится здесь.

 <style type="text/css">
/*
When the screen is 30em and below, the column b is stacked below 
column a and column c is hidden.
*/
@media all and (max-width: 30em) {

.home-breakpoint .ui-block-a {
    display: none;
 }
 .home-breakpoint .ui-block-b {
    width: 100%;
    float:none; 

  }

 .home-breakpoint .ui-block-c {
    display: none;
  }
}


/*
When the screen is above 30em and below 48em, columns a and b 
are displayed beside each other,  column c is hidden.
*/
@media all and (min-width: 30.1em) and (max-width:48em) {
.home-breakpoint .ui-block-a {
    width: 20%;float: left;
background-color:#e9e9e9;

}

.home-breakpoint .ui-block-b {
    width: 60%;float: left;

}
.home-breakpoint .ui-block-c {
    width: 20%;float: left;
background-color:#e9e9e9;

}
}


/*
When the screen is above 48em all 3 columns are shown 
beside each other.
*/

@media all and (min-width: 48.1em) {
.home-breakpoint .ui-block-a {
    width: 20%;float: left;
background-color:#e9e9e9;

}

.home-breakpoint .ui-block-b {
    width: 60%;float: left;

}
.home-breakpoint .ui-block-c {
    width: 20%;float: left;
background-color:#e9e9e9;

}
}
</style>
  

и в разделе содержимого страницы jquery mobile

 <div class="ui-grid-b home-breakpoint">
    <div class="ui-block-a" > 
       amp;nbsp;
    </div>
    <div class="ui-block-b">                            
      <p>This is the middle column.</p>
    </div>
   <div class="ui-block-c" >                            
      amp;nbsp;
   </div>  
</div>