1. 程式人生 > >手機端多個div一行顯示寬高相同並且自動適配(純css)

手機端多個div一行顯示寬高相同並且自動適配(純css)

一幫來說,pc端的靜態頁一般都是畫素為基本單位,基本都是卡尺卡出來的,只要是有耐心,一般沒什麼大問題

而移動端的對應的終端的螢幕的大小差異太大了,為了適配不同的螢幕這時候就不能以畫素px為單位了,更多的是相對的百分比%


一行平均顯示兩個圓並且寬高相同而且隨著螢幕的大小的變化進行縮放,一般來說可以這樣

一個大div中2個小div,這兩個小div寬是大div的50%,高度呢就有些說法了,如果高度用百分比的話相對的父級的,但是父級預設是被子級撐開的,所以寫百分百是不行的,寫多少高度都是0,但是預設的padding,margin是相對父級的寬,所以我們可以設定padding-top或者padding-bottom是跟父級的寬度一樣實現這個效果,

HTML:

<div class="main">
	<div></div><div></div>
</div>

CSS:
<style>
body,html{
	margin:0;
	padding:0;
}
.main{
	width:100%;
}
.main div{
	width:50%;
	display:inline-block;
	background-color:#F00;
	padding-top:50%;
	border-radius:100%;
}
</style>

這樣做的話效果是實現瞭如果想往上面的紅圓圈寫字的話問題又出現了,本來很好的圓形變橢圓了。


因為字預設給撐開了,這時候沒有辦法了,只能採用position;absolute來搞定

HTML

<div class="main">
	<div><span>1</span></div><div><span>2</span></div>
</div>
CSS:
<style>
body,html{
	margin:0;
	padding:0;
}
.main{
	width:100%;
}
.main>div{
	width:50%;
	display:inline-block;
	background-color:#F00;
	padding-top:50%;
	border-radius:100%;
	line-height:100%;
	position:relative;
}
.main>div>span{
	position:absolute;
	top:50%;
	left:50%;
	margin-left:-8px;
	margin-top:-4px;
}
</style>

當然如果裡面的字的長度是不定的,這種方法就不行了,恐怕只能用JS了

還有一個更簡單的用vw,vh,程式碼比較簡單:

HTML:

<div class="main">
	<div>1</div><div>2</div>
</div>

CSS:
<style>
body,html{
	margin:0;
	padding:0;
}
.main{
	width:100%;
}
.main>div{
	display:inline-block;
	width:50vw;
	height:50vw;
	background-color:#F00;
	border-radius:100%;
	line-height:50vw;
	vertical-align:middle;
	text-align:center;
	
}

</style>

效果也一樣:


不過也有問題,字不能太多,太多就跑到圖外面去啦!而且相容性不是非常好,低端的瀏覽器可能不支援

相關推薦

手機div一行顯示相同並且自動css

一幫來說,pc端的靜態頁一般都是畫素為基本單位,基本都是卡尺卡出來的,只要是有耐心,一般沒什麼大問題 而移動端的對應的終端的螢幕的大小差異太大了,為了適配不同的螢幕這時候就不能以畫素px為單位了,更多的是相對的百分比% 一行平均顯示兩個圓並且寬高相同而且隨著螢幕的大小的變

html設置div並排顯示

ima code info pre image img .com inf 設置 我這裏以4個div為例,html代碼如下: <body> <div id="column1" style="background-color: blue;float:l

設定div並列顯示

有兩個屬性可以用到:一個是float,另一個是display   用法: <div>我是第一個div</div> <div>我是第二個div</div> 設定css樣式: <style> div{flo

客戶異常文案顯示方法

      在實際開發中,針對某一介面,我們有不同的顯示需求:以app中的訊息列表為例,在網路有問題的情況下,我們介面顯示網路出現問題;在網路正常,但是沒有訊息資料的情況下,我們要求顯示,沒有訊息。這是常規的異常顯示案例。      但是,有時候為了減少Layout數量,我

【整理css知識點】實現審閱列表後一行消失,另一行補上的css

問題1:解決給表格增加動畫後不破壞佈局問題 解決:表格display是table-cell,所以設定block即可 問題2:當表格一行被刪除,下一行自動補上 問題2補充(table下tr th,table的display是table-cell,tr的display是ta

vuejs第二篇 vue-cli配置移動引入flexible

原文網址 http://hjingren.cn/2017/06/16/%E5%9F%BA%E4%BA%8Evue-cli%E9%85%8D%E7%BD%AE%E7%A7%BB%E5%8A%A8%E7%AB%AF%E8%87%AA%E9%80%82%E5%BA%94/ 1.

【前端庫】html 移動meta方法

案例單擊我 js程式碼 ;(function(win, lib) { var doc = win.document; var docEl = doc.documentElement; var metaEl = doc.quer

手機淘寶

(function flexible (window, document) { var docEl = document.documentElement var dpr = window.devicePixelRatio || 1 // adjust body font size func

CSSDIV在同一行居中顯示的一種實現方法

在專案開發中,畫面經常有多個DIV的內容顯示在一行的要求。 比如HTML <div class="div_allinline"> <div class="subdiv_allinline"> 你好,這是div1的第一行。 &

div在一個div一行水平顯示(inline-block)

在之前的程式碼做簡單的更改也能實現 html程式碼: <div class="div"> <div class="div1"> left </di

html在一行內橫向排列並排同行同時顯示div盒子的方法(CSS浮動清除float-clear/inline)/辦法

最近在做一個div css切割,昨晚發現了長期以來一直無記錄下來的問題!關於相容IE跟FF的float屬性。趁現在還清醒趕緊記下筆記先: 一、並排在一行的兩個div樣式有這種情況:ie或者ff下對於子div設定float左的時候,如果另外的子div沒有設定float左的 話,兩個瀏覽器下會有區別,具體有一個

手機滑動事件監聽,可繫結DIV

自己寫的DEMO僅供學習 <!doctype html> <html> <head> <meta charset="utf-8"> <tit

div放置在同一行

1.float <style type="text/css">     .totalFieldDiv{         margin-left:5px;         margin-right:5px;         background-color:#0

42JS運動之物體框架--div

  如果只為div新增一個定時器的話,在多個div變寬的時候會發生問題,但是如果為每個div新增一個定時器,那麼就可以實現多個物體變寬。注意:在多物體運動的情況下,所有東西不能共用。offsetXXX會跟border衝突導致不能得到想要的結果,在這裡可以用getStyle(

float div在同一行

float: 在前面元素顯示後的情況下(向前面找border margin  pading),向某個方向浮動,它並不佔位置,但是在同一容器下,文字會圍繞float元素 多個div在同一行 方案1絕對定位 現在寫成這樣: <div style="position:

css實現div在同一行並且div中內容可斷行

實現效果: <!DOCTYPE html> <html> <head> <style>      .all{         display:-

div排列在同一行而不換行

  有時候,我們可能會產生多個div標籤橫向排列而不換行的需求,具體有以下幾種實現方法: 1. 同級div設定display:inline-block,父級div強制不換行 例如: <

web前端html實例-div在同一行相同間隔分布

itl http tex charset 實現 ans mage ctype 交流 這樣的布局效果使用非常的頻繁,也就是讓多個div在一行分布,並且div於div之間的間隙是一樣的。 多用在對於產品的展示之用,下面就介紹一下如何實現此中布局。 代碼實例如下: <!D

DIV並排顯示

ext content head wid con 做的 solid 一個 ges 今天做的一個項目,需要做3個div,一個是總框(Div1),另外兩個是子框,按比例填滿div1,我設置好兩個div的width和height,發現效果是兩個子div上下顯示,如圖所示: 要想

zabbix增加手機4url地址的返回值

curl zabbix url 由同事提供4個需要監控的url地址GET類型:http://10.15.24.61:809/UserCenterService.svc/getAccountInfo/563/9638POST類型:http://10.15.24.61:809/ProductServi