Home > Article > Web Front-end > A brief introduction to responsive layout design for jQuery mobile web development_jquery
Responsive layout design is a design that responds to the user device according to the screen resolution of the user device. This means that whether a user is browsing a web page on a mobile, tablet, or desktop device, the design will respond appropriately to the device by displaying a specific layout based on that device's screen resolution.
The framework’s documentation actually uses a combination of the jQuery Mobile framework and CSS3 media queries to implement its own responsive design. How it reacts to different screen resolutions.
Without custom styles, our grid will be a 3-column layout across all screen widths:
In our custom style, we want this grid to overlay the narrow width and then switch to a standard 3-column layout. At very wide screen widths, we want the first column to take up 50% of the width, like this:
In order to achieve this, we need to customize a new class name, such as "my-breakpoint".
This class is used for scoped styles in custom media queries, they will only be applied when this class is added to a grid container. For media query packages we only want 50em styles applying the following conditions.
In your media queries, use EM units instead of pixels to ensure that the media query takes the font size into account in addition to the screen width. To calculate the EMS screen width, add 16 pixels to the target width, which is the default font size for body.
HTML5 part:
<div class="ui-grid-b my-breakpoint"> <div class="ui-block-a">Block A</div> <div class="ui-block-b">Block B</div> <div class="ui-block-c">Block C</div> </div><!-- /grid-b -->
CSS3 part:
@media all and (max-width: 50em) { .my-breakpoint .ui-block-a, .my-breakpoint .ui-block-b, .my-breakpoint .ui-block-c, .my-breakpoint .ui-block-d, .my-breakpoint .ui-block-e { width: 100%; float:none; } }
In this media query, we set the width to 100% and negate the float attribute to 50em screen width. These rules apply to every grid type by stacking selector grids of all classes ui-block-a through ui-block-e styles.
That's making the grid responsive and adding additional styling rules to make each breakpoint change easier. We encourage you to create as many custom breakpoints as you need based on your unique content and layout needs.
Add a widescreen breakpoint to adjust the ratio
Based on the example above, we can add an additional breakpoint to set the width so that the first column is 50% wide and the other two 25% above 75em (1200 pixels) by additional min-width media queries to adjust the width Just like this in custom style:
@media all and (min-width: 75em) { .my-breakpoint.ui-grid-b .ui-block-a { width: 49.95%; } .my-breakpoint.ui-grid-b .ui-block-b, .my-breakpoint.ui-grid-b .ui-block-c { width: 24.925%; } .my-breakpoint.ui-grid-b .ui-block-a { clear: left; } } }
NOTE: A slightly narrower width setting is required to work on rounding issues across platforms.
Apply custom breakpoint ui-responsive
Using this default breakpoint, add the ui-responsive class to the grid container, which will render the stack below 560px (35em). If this breakpoint doesn't work for your content, we encourage you to write a custom breakpoint as described above.
<div class=" ui-grid-b ui-responsive ">
These are standard grids that are responsive class grid containers made by ui-responsive (interface response, custom class, my-breakpoint in the example above)
Example:
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>responsive-grid demo</title> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css"> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <!-- The script below can be omitted --> <script src="/resources/turnOffPushState.js"></script> <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script> <style> @media all and (max-width: 35em) { .my-breakpoint .ui-block-a, .my-breakpoint .ui-block-b, .my-breakpoint .ui-block-c, .my-breakpoint .ui-block-d, .my-breakpoint .ui-block-e { width: 100%; float:none; } } @media all and (min-width: 45em) { .my-breakpoint.ui-grid-b .ui-block-a { width: 49.95%; } .my-breakpoint.ui-grid-b .ui-block-b, .my-breakpoint.ui-grid-b .ui-block-c { width: 24.925%; } } </style> </head> <body> <div data-role="page"> <div data-role="header"> <h1>Responsive Grid Example</h1> </div> <div data-role="content"> <div class="ui-grid-b my-breakpoint"> <div class="ui-block-a"><div class="ui-body ui-body-d">Block A</div></div> <div class="ui-block-b"><div class="ui-body ui-body-d">Block B</div></div> <div class="ui-block-c"><div class="ui-body ui-body-d">Block C</div></div> </div> </div> </body> </html>