Home  >  Article  >  Web Front-end  >  Use javascript for responsive development

Use javascript for responsive development

亚连
亚连Original
2018-06-12 11:34:401826browse

This article mainly introduces the use of rem in javascript for responsive development. Now I share it with you and give you a reference.

The computer version of the mall was finished last night, and today I am rushing to make the mobile version. When it comes to the mobile website, the first thing that comes to mind is to adapt to the width of different mobile phone screens to ensure that it can be displayed normally on different mobile phones. For users, when I was doing this type of website before, I introduced bootstrap without any thought. But after completing the previous project, I found that although bootstrap is good, I rarely use the various styles in it. I use it most for layout. When the website is finally uploaded, you will find that even after compression, it will take up a lot of space. A large part, so this time I want to use native writing and responsive development (I still know a little bit about it now). At present, I understand

1. Percentage method:

As the name suggests, the margin, padding, width, height, etc. of the page elements are calculated using %. What does the hundred in the percentage in CSS refer to? It refers to the parent element. All percentages are like this. If the width of the child element is 50%, then the width of the parent element is 100, the padding-left of the child element is 50%, the width of the parent element is 100, and the margin-top of the child element is 20%, then the height of the parent element is 100. Therefore, the default width of the body is the screen width (referring to the browser width in PC). The descendant elements can be positioned according to percentages (or specified sizes). This is only suitable for pages with simple layouts. It is difficult to implement complex pages.

2. Media query:

This is given in css3. The problem we want to solve is to adapt to the mobile phone screen. This media query is precisely to solve this problem. However, the function of media query is to set different css styles for different media. The "media" here includes page size, device screen size, etc. The most commonly used form is

phone:@media screen and (max -width: 767px) {/Mobile style/}

pad:@media screen and (max-width: 991px)and(min-width:768) {/Tablet style/}

pc:@media screen and (min-width: 992px){/Computer style/}

...(You can also set more nodes)

If you use media query To ensure that each pixel has a corresponding adaptation effect, obviously you need to set a smaller width range;

3. There is also the unit rem of css3:

rem is to use the font-size value of the root node html as the base size of the entire page. For example, 24f6ee081ffe8b8b47a5b9b95efd48bf So how can 1rem=10px; be adapted? Then you need to use js to get the width of the window (width of the browser window) $(window).width() when the page is loaded; when developing mobile pages, we generally set the maximum width to 640px, because 640px can guarantee When displayed on the widest mobile phone to date, both ends of the web page just fit the screen. Let me give you a small example.

Screen zoom-in and zoom-out. The three p's are also in the same row.

html

<p class="container">
  <p class="box">1</p>
  <p class="box">2</p>
  <p class="box">3</p>
</p>

css

<style>
  html{font-size: 20px;}
  .container{
    max-width: 640px;
    border:1px solid red;
    margin:0 auto;
    overflow: hidden;
    box-sizing: border-box;
  }
  .box{
    float: left;
    width:10.6rem;
    //我这里设置html的font-size:20px;最大
宽为640px,即相当于640/20=32rem;一行有3个p,所以每个p宽10.6rem

你也可以像论坛里面讲的那样设置html的font-size:62.5%;因为浏览器默认像素16px;乘以62.5%之后为整数10px;方便计算

    height:10.6rem;
    border:1px solid #000;
    box-sizing: border-box;
  }
</style>

js

<script>
 window.onresize = window.onload = function () {
   var w = $(window).width();
   if(w<640){
     var size = 20*w/640;//640的时候
对应html的font-size为20,那么宽度为w是对应
的font-size可这么求
     $(&#39;html&#39;).css(&#39;fontSize&#39;,size+&#39;px&#39;);
   }
 }
</script>

Note that there is a small pit here. When you take this small demo to Google Chrome for verification, you will find that the first three p's will shrink as your browser window shrinks. When zooming out, it will stop moving after reaching a certain value. The reason is that Google Chrome supports the minimum font-size of HTML by default is 10px; if it is less than this value, it will not be smaller. This is the problem I encountered at the time. I searched online for almost two hours and demonstrated over and over again but still couldn't figure it out. Finally I found such a non-human reason.

The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.

Related articles:

How to use vue-meta to manage header tags

Some common problems with Nuxt.js (detailed tutorial)

React Native related cross-domain resource error issues

Install the latest version of npm in nodejs (detailed tutorial)

How to implement function debounce in js (detailed tutorial)

How to mark the record scroll position in vue-scroller

The above is the detailed content of Use javascript for responsive development. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn