Home  >  Article  >  Web Front-end  >  How to make various lists on H5 mobile terminal (5)

How to make various lists on H5 mobile terminal (5)

黄舟
黄舟Original
2017-03-10 16:42:231253browse

How to make various lists on H5 mobile terminal (5)

Previous review

《How to make various lists on H5 mobile terminal Production method (1)》
《How to make various lists on H5 mobile terminal (2)》
《How to make various lists on H5 mobile terminal (3)》
《 How to make various lists on H5 mobile terminal (4)》

If you saw this article first, I suggest you go to the link above first and read the corresponding content This way, the context is coherent and it is easier to understand the content of this article.

In Chapter 4, we learned how to make a double-column picture and text list. However, this picture and text list has There are certain limitations. The limitation is that the pictures must be square.

Of course, in the practice of actual projects, this is enough. However, this problem is still incomplete. For example, the pictures are not loaded. In the case of size, and ensure that the image cannot be deformed before loading.

Ordinary two-column image and text list (the image size is not limited, and the image is not deformed before loading)

There are still many such scenes. Let’s take a look at the actual renderings

How to make various lists on H5 mobile terminal (5)

Look at this effect. It’s not too complicated. But there are a few key points. .Let’s look at the html code first

html code

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<title>list 3</title><link rel="stylesheet" href="../style/style.css">
</head>
<body>
<p class="list_3">
    <ul>
        <li>
            <a href="">
                <p class="goods_photo">
                    <img src="../image/1.jpg" alt="这里是商品标题1">
                </p>
                <h4 class="goods_title">这里是商品标题1</h4>
                <em class="goods_price">¥4999.00</em>
            </a>
        </li>
        <li>
            <a href="">
                <p class="goods_photo">
                    <img src="../image/2.jpg" alt="这里是商品标题2">
                </p>
                <h4 class="goods_title">这里是商品标题2</h4>
                <em class="goods_price">¥4999.00</em>
            </a>
        </li>
        <li>
            <a href="">
                <p class="goods_photo">
                    <img src="../image/3.jpg" alt="这里是商品标题3">
                </p>
                <h4 class="goods_title">这里是商品标题3</h4>
                <em class="goods_price">¥4999.00</em>
            </a>
        </li>
        <li>
            <a href="">
                <p class="goods_photo">
                    <img src="../image/4.jpg" alt="这里是商品标题4">
                </p>
                <h4 class="goods_title">这里是商品标题4</h4>
                <em class="goods_price">¥4999.00</em>
            </a>
        </li>
    </ul></p></body></html>

The code in this example is different from the code in the previous article where all the pictures are square. As you can see, I am# The ##img tag adds a layer of p nesting. This is of course not arbitrary. It is used to occupy the image and provide a parent box. In the CSS code, let's look at it again .

SASS code

.list_3 {    ul {        @extend .cf; // 引用清理浮动代码片,看不懂请看本人scss相关教程
        li {            width: 50%;float: left;padding: 1rem 0;
            outline: 1px solid #ddd;  // 使用 outline 模拟边框 (outline不占据盒子模型)
            background: #fff;  // 使用白色背景颜色,防止 outline 重叠造成 2px 线条
            a {                
            display: block;
                text-decoration: none; // 去除默认下划线
            }            
            .goods_title,.goods_price {                
            padding: 0 1rem; // 加上左右内填充,防止文字和边框粘结
                text-align: center;
            }            
            // 和上一章最大的差异在这里.
            .goods_photo {                
            width: 100%;padding-bottom: 100%;position: relative;
                img {                    
                // 限制图片最大宽高,保持不变形
                    max-width: 80%;max-height: 80%;display: block;
                    // 未知宽高块级元素水平且垂直局中代码
                    position: absolute;top: 50%;left: 50%;
                    transform: translate(-50%, -50%);
                }
            }
        }
    }
}// 全站范围内用到的图文基本样式.goods_title,.goods_price {    
display: block;position: relative;
    @include ts(); // 引用文字描白边代码片
    @include online(1.8rem); // 引用文字超出一行省略号代码片}
    .goods_title {color:#000;font-size: 1.2rem;}
    .goods_price {color:#f60;font-size: 1.5rem;font-weight: bold;}

Here, we add this code to the

.goods_photo boxwidth: 100%;padding-bottom: 100 %;position: relative;, used to form a square box that changes with the width of the device. If you don't understand, you can refer to my previous blog post "Pure CSS to implement common layouts on mobile terminals - height and width" The Secret of Hooks".

Summary

In the previous chapter, we implemented a double-column layout. And implemented a simulated

1px border, etc. In this chapter, It mainly highlights the following knowledge points:

  1. How CSS implements the height and width hooks of elements.

  2. How CSS keeps images scaled down.

  3. How to implement horizontal and vertical centering of block-level elements of unknown size.

Emphasis: (1.) Android 4.4 or below and some domestic mobile browsers do not support the latest CSS attributes such as
clac\ vw \ vh. Therefore, the method in this article It is solved using techniques in traditional CSS. (2.) In this series of articles, I plan to explain some of my experiences and insights on the mobile terminal step by step. Some people exclaimed after reading the first chapter, this is too simple. I would like to ask a question, almost any programming book It started from
hello world. Isn’t it all very simple?

The above is the detailed content of How to make various lists on H5 mobile terminal (5). 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