css 不规整元素的宽高等比例

news/2023/12/9 4:25:32

不规整元素的宽高等比例

在不同屏幕情况中不同宽高的元素都以相同等比例、等宽和等高方式展示。

需求

设计师希望页面的图片区域,以宽高为2:1比例且所有图片的等宽和等高的方式展示。小加同学觉得设计师这需求太容易,分分钟搞定,拿到图片后便开始刷刷的撸代码。原型设计稿大致如下:

原型图

bootstrap 栅格系统

思路

每个图片区域宽度为父元素宽度的25%,图片的宽度设置100%,其高度根据宽度等比例自动缩放(小加以为图片的宽高应该是同比例的),这样就可以适应屏幕达到要求咯~

HTML

  <div class="section">
    <h1 class="section__title">初版</h1>
    <div class="section__images row">
      <div class="section__image-wrap col-xs-3">
        <img class="section__image" src="../../img/common/common-1.jpg">
      </div>
      <div class="section__image-wrap col-xs-3">
        <img class="section__image" src="../../img/common/common-2.jpg">
      </div>
      <div class="section__image-wrap col-xs-3">
        <img class="section__image" src="../../img/common/common-3.jpg">
      </div>
      <div class="section__image-wrap col-xs-3">
        <img class="section__image" src="../../img/common/common-4.jpg">
      </div>
      <div class="section__image-wrap col-xs-3">
        <img class="section__image" src="../../img/common/common-5.jpg">
      </div>
      <div class="section__image-wrap col-xs-3">
        <img class="section__image" src="../../img/common/common-6.jpg">
      </div>
      <div class="section__image-wrap col-xs-3">
        <img class="section__image" src="../../img/common/common-7.jpg">
      </div>
      <div class="section__image-wrap col-xs-3">
        <img class="section__image" src="../../img/common/common-8.jpg">
      </div>
    </div>
  </div>

CSS

  .section {
      margin-bottom: 100px;
    }
  .section__image-wrap {
    display: inline-block;
    float: left;
    padding: 10px;
  }
  .section__image {
    width: 100%;
  }

效果图

初版效果图

吐槽

OMG,这这这...是什么情况啊~ 一行四个,怎么第二行就一个,前面三个位置都是空的,这不可能啊!等等,我需要静静~ 貌似图片不是同比例的宽高的,**这让我怎么搞,手动设置图片高度为50%?实时计算高度然后动态设置图片高度?



分割线来咯~ 你能够尝试着解决这个问题吗?




padding + position

思路

使用padding百分比的方式来实现不规整元素宽高等比例。padding-left/right设置百分比时,是参考父元素的宽度;想当然的padding-top/bottom设置百分比时,是参考父元素的高度,Oh no no no... 它也是参考父元素的宽度哦。

CSS

  .section {
    margin-bottom: 100px;
  }
  .section__image-wrap {
    display: inline-block;
    float: left;
    padding: 10px;
  }
  .section__image {
    width: 100%;
  }
  .section-revision--padding .section__image-wrap {
    position: relative;
    padding: 12.5% 0 0 25%;
  }
  .section-revision--padding .section__image {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    padding: 10px;
  }

效果图

初版效果图

效果对比图

初版效果图

关键知识点

padding valuedescription
auto浏览器计算内边距。
length规定以具体单位计的内边距值,比如像素、厘米等。默认值是0px。
%<mark>规定基于父元素的宽度的百分比的内边距。</mark>
inherit规定应该从父元素继承内边距。

w3school

资源

在线测试

源代码


http://www.niftyadmin.cn/n/3463797.html

相关文章

【每日知识】get和post的区别

Http定义了与服务器交互的不同方法&#xff0c;最基本的方法有4种&#xff0c;分别是&#xff1a;GET&#xff0c;POST&#xff0c;PUT&#xff0c;DELETE。 URL全称是资源描述符&#xff0c;我们可以这样认为&#xff1a;一个URL地址&#xff0c;它用于描述一个网络上的资源&…

【每日知识】Ajax组成部分了解

Ajax&#xff1a;全称 Asynchronous Javascript And XML(异步的js与xml) 用js发送异步的网络请求 A : Asynchronous 异步 同步 &#xff1a; 指的是代码按照从上往下顺序执行 异步 &#xff1a; 代码不会立即执行,而是要等一会儿执行 目前我们学过的ECMAScript只有两个语法是…

代理服务器与NAT技术

一、代理服务器1、代理服务器是一种重要的服务器安全功能&#xff0c;工作在OSI七层模型的会话层。从而起到防火墙的作用&#xff0c;代理服务器通常用来连接INTERTNET和局域网。代理服务器允许一个网络终端&#xff08;一般为客户端&#xff09;通过这个服务与另一个网络终端&…

【面试】onreadystatechange事件

1. onload事件 &#xff1a; 接收服务器响应的数&#xff08;一次请求&#xff0c;只会执行一次&#xff09; 2. onreadystatechang事件 : 作用与onload事件一致&#xff08;一次请求&#xff0c;会执行多次&#xff09; 面试点&#xff1a; XMLHttpRequest对象的状态码 &…

IPC 和 RPC (呵呵,我感觉我应该要钻研到这个深度啦)

上次看到一个网页&#xff0c;知道牛人们都在作什么时&#xff0c; 我明显感觉到我的世界和这些世界的差异。 慢慢往前走吧。。 1.有不同的手机终端&#xff0c;如iphone&#xff0c;安卓&#xff0c;Symbian&#xff0c;不同的终端处理不一样&#xff0c;设计一种服务器和算法…

【每日一练】用户登录小案例

思路分析&#xff1a; 1.点击登录 2.获取输入框文本&#xff0c;非空判断 3.ajax发送 4.服务器响应 成功&#xff1a;跳转首页 失败&#xff1a;弹窗提示 代码&#xff1a; document.querySelector(#btnLogin).onclick function () {let username document.querySelec…

批处理创建文件夹

echoset /p fileName请输入文件名&#xff1a;set head2014set "fileName%head%%fileName%"md E:\%fileName%echo 创建文件成功 文件名为 %fileName%pause

C# 浅拷贝与深拷贝区别 解惑篇

问题起源&#xff1a; 昨天被同事问到一个浅拷贝与深拷贝区别的问题&#xff0c;说实在的&#xff0c;记得在学校时在书在看过相关概念区别。 只是&#xff0c;那时的在校生&#xff0c;又有几个能对书本上那写的尽量让鬼都看不懂知识能清晰的理解呢。 工作后虽然也有用到Clone…

iOS之开发中常用的颜色及其对应的RGB值

RGB值RGB值RGB值黑色000#000000黄色2552550#FFFF00浅灰蓝色176224230#B0E0E6象牙黑413633#292421香蕉色22720787#E3CF57品蓝65105225#4169E1灰色192192192#C0C0C0镉黄25515318#FF9912石板蓝10690205#6A5ACD冷灰128138135#808A87dougello23514285#EB8E55天蓝135206235#87CEEB石板…

【每日知识】 offset,scroll家族,client家族

1. offset家族 : 获取 ‘元素自身’ 真实宽高与位置 offsetWidth / offsetHeight : 真实宽度 widthpaddingborder offsetLeft / offsetTop : 自身 左/上 外边框 到 定位父元素 左/上 内边框距离 2. scroll家族 : 获取 ‘元素内容’ 真实宽高与位置 scrollWidth / scroll…

Munin进阶使用

关于munin的基础理解和使用请参考munin-因为plugin而亮。下面是一些我在使用munin中遇到的问题和解答&#xff0c;以问答形式回答。 munin的cron文件有吗&#xff1f; 默认安装路径是&#xff1a;/usr/bin/munin-cron munin的几个命令的作用和先后顺序&#xff1f; 命令&#x…

Android AIDL代码实例

两个应用的aidl文件夹中的内容相同&#xff0c;包名为服务器的包名。 IMyAidlInterface.aidl // IMyAidlInterface.aidl package com.zhang.aidldemo;import com.zhang.aidldemo.TimerCallback;interface IMyAidlInterface {void setData(String data);void regCallback(TimerC…

【面试】TCP的三次握手

TCP三次握手&#xff1a; 建立安全可靠的传输协议 TCP:一种 传输控制协议 TCP作用&#xff1a;保证http网络传输是 安全可靠的(检测客户端 与 服务器的网卡是不是通的) TCP三次握手&#xff1a; 第一次&#xff1a; 浏览器->服务器 (你能听到我说话吗&#xff1f; 检测浏览…

intelliJ idea代码折叠

在intelliJ idea中不仅可以对类、方法等结构的代码进行折叠&#xff08;ctrl-&#xff09;还可以自定义折叠代码。intelliJ支持两种风格的自定义代码折叠&#xff0c;如下&#xff1a; visual studio style //region Description Your code goes here... //endregion …

【每日一练】上传文件小案例

自定义文件上传按钮思路&#xff1a; 1.隐藏file表单 (设置display为none) 2.给自定义按钮注册点击事件&#xff0c;点击注册file表单默认点击事件 触发注册点击事件:dom元素.onclick() 触发默认点击事件:dom元素.click() 结构&#xff1a; <div class"thumb-box&…

javascript 数组排序sort()用法

sort() 方法用于对数组的元素进行排序。 第一种情况&#xff1a;数组元素是字符串 <script>var aAry["George","John","Thomas","James","Adrew","Martin"];document.write(aAry.sort()); </script>…
最新文章