Jingdongは、モバイルレコーディングプロジェクトの実践

Jingdongは、モバイルレコーディングプロジェクトの実践

  1. 携帯端末の基本的なレイアウトと流れの要件が適応しました

        /*流式布局:就是百分比布局,非固定像素,内容向两侧填充,理解成流动的布局,称为流式布局*/
        /*视觉窗口:viewport,是移动端特有。这是一个虚拟的区域,承载网页的。
          承载关系:浏览器---->viewport---->网页
        */
        /*适配要求:
            1. 网页宽度必须和浏览器保持一致(因为只要横向不出现滚动条就好)
            2. 默认显示的缩放比例和PC端保持(缩放比例为1.0时和网页上一致)
            3. 不允许用户自行缩放网页(否则破坏了网页的显示方式)
            满足这些要求达到了适配,国际上通用的适配方案,标准的移动端适配方案。
        */
         /*防止内容溢出  不出现滚动条  提供用户体验*/
                box-sizing: border-box;
     /*手机端的浏览器大多数都是使用webkit内核,故要这么适配*/
     -webkit-box-sizing: border-box;
     /*点击高亮效果的清除*/
     tap-highlight-color: transparent;
     -webkit-tap-highlight-color: transparent;
  2. イベントをバインドするにはいくつかの方法

    • 上の唯一のイベントを結合するが、さまざまなブラウザと互換性を持つことができます

    • Googleの関連ブラウザのさまざまなaddEventListenerを、あなたは複数のイベントをバインドすることができます

    • IEのためのattachEventが、そこに何度も結合イベント名があることができ

      例えば:タッチイベント

                 var div=document.querySelector(".div1");
                 div.addEventListener("touchstart",function(){
                     console.log("start!")
                 });
                 div.addEventListener("touchmove",function(){
                     console.log("start move!")
                 });
                 div.addEventListener("touchend",function(){
                     console.log("end move!")
                 });  
  3. 補足タッチイベントは、いくつかの相違点の座標の点に注意してください。

    タッチポイントの各々における現在の接触点の座標e.touchesを記録する[0]が最初のタッチポイント
    clientX clientYプロパティベースブラウザウィンドウ(ビューポート)
    ページ(ビューポート)に基づいてpageX pageY
    がscreenX screenYのスクリーン

  4. カウントダウン分、秒を設定します。

    時間=関数(){ダウンであった
    * 60 = 2 * 60時間でした。

    setInterval(function() {
     time--;//使用定时器,自动减时间,更新时间
     var h = Math.floor(time / 3600);//小时
     var m = Math.floor(time % 3600 / 60);//分钟
     var s = time % 60;//秒
     var spans = document.querySelectorAll(" .all-time span");
     spans[0].innerHTML = Math.floor(h / 10);//向下取整得到十位数
     spans[1].innerHTML = Math.floor(h % 10);//取余得到个位数
     spans[3].innerHTML = Math.floor(m / 10);
     spans[4].innerHTML = Math.floor(m % 10);
     spans[6].innerHTML = Math.floor(s / 10);
     spans[7].innerHTML = Math.floor(s % 10);
    }, 1000)
  5. 適応2列

     </head>
     <body>
         <div class="box1">
         </div>
         <div class="box2">
         我是内容我是内容我是内容我是内容我是内容我是内容我是内容
         我是内容我是内容我是内容我是内容我是内容我是内容我是内容
         我是内容我是内容我是内容我是内容我是内容我是内容我是内容
         我是内容我是内容我是内容我是内容我是内容我是内容我是内容
         我是内容我是内容我是内容我是内容我是内容我是内容我是内容
         我是内容我是内容我是内容我是内容我是内容我是内容我是内容
         我是内容我是内容我是内容我是内容我是内容我是内容我是内容
         我是内容我是内容我是内容我是内容我是内容我是内容我是内容
         我是内容我是内容我是内容我是内容我是内容我是内容我是内容
         我是内容我是内容我是内容我是内容我是内容我是内容我是内容
         我是内容我是内容我是内容我是内容我是内容我是内容我是内容
         我是内容我是内容我是内容我是内容我是内容我是内容我是内容
         </div>
         .box1{
                /*设置浮动和宽度*/
                 width: 100px;
                 height: 100px;
                 background-color: pink;
                 float: left;
             }
             .box2{
                 /*可以清楚浮动,可以让自己绝对绝缘 bfc*/
                    /*不让其他浮动元素影响自己*/
                /*不让自己的浮动去影响别的元素*/
                 overflow:hidden;
             }

  6. 応答エリアを強化するために、アイコンクロップ

     a{
        width: 40px;
        height: 44px;
        padding: 12px 10px;
        position: absolute;
        top: 0;
        /*让背景从内容开始平铺*/
        background-origin: content-box;
        /*没有做背景裁剪 背景图默认就是从边框显示*/
        /*默认的就是
        border-box  边框以外被裁剪掉
        padding-box 内边距以外被裁剪掉
        content-box 内容以外被裁剪掉
        */
        background-clip: content-box;
    }
  7. 2つのボックスは、設定後のボックスの高さの上に、残りを占有するボックスの高さの下方に設けられています。

    .jd_main{
        /*占满剩余的高度*/
        width: 100%;
        height: 100%;
        padding-top: 45px;
    }     
  8. ギャップの画像処理方法

        body{
            /*font-size: 0px;*/
        }
        /*img{
            display: block;
        }*/
        img{
            vertical-align: middle;
        }
  9. 幅を設定するために、親コンテナの中央に配置され; 0オート:中央ボックス、マージンの使用を達成します。しかし、カセットの位置の設定、マージン一元利用できない場合。

  10. インライン要素は、限り高さと行の高さが提供されるので、テキストは、水平及び垂直センタリングすることができます

  11. セレクタスペースの問題について

    • いいえスペースは兄弟要素を表していませんli.now

    • 2つのセレクタの場合の間にスペースがある場合には、サブクラスセレクタを表します

      .a .b{}
      /*代表的是a类的b子类 */
      <div class="a b"></div>
      /*.a.b{}两个选择器之间没有空格的情况下,代表的是同时拥有两个类名的标签*/
  12. 透明フロート(子要素がフロートプロパティを設定し、親要素の高さと幅が設定されていないが、それはサブエレメントによって支持され、親要素の高さの崩壊につながる(元の高さ)が0に後で設定されました)

    フロートにその子要素は、親要素は、フローティング、またはサブ要素がないと除去することが必要です。

    クリアフロート方法:

    • 明確な親要素内の冗長要素の追加:両方を、
    • 親要素のオーバーフローのプロパティを設定:隠された||オート
    • 処理後(擬似要素セレクタ法)
    .clearFix::before,
    .clearFix::after{
        content: "";
        display: block;
        visibility: hidden;
        height: 0;
        line-height: 0;
        clear: both;
    }

    13.スプライト共通スタイルセットは、その後、個別に各アイコンの位置に再設定します

    [class^="icon-"],[class*=" icon-"]{
        background-repeat: no-repeat;
        background-image: url("../images/sprites.png");
        background-size: 200px 200px;
    } ```

    14.擬似要素は、デフォルトのインライン要素が設定されたブロックに、小さなアイコンを設定するために、スパンの一部を置換することができます

    15.いくつかの小さな細部

  • H3は太字フォントの太さを設定していない:通常の
  • より多くのスパンを入れている、例えば、div要素を使用するために、より多くのコンテンツよりも含まれてい
  • 背景画像は、ライト中心位置を設定する必要はありません。
  • フローティング要素の提供は、ブロックレベルに変換されます
  • 図は、ブロックのセットを有する、幅が設けられていなくてもよいです
  • 中央に配置された下余白幅設定部除去をIMG設定マージン

おすすめ

転載: www.cnblogs.com/bystander-ry/p/11993701.html