background position百分比原理

2021-09-08 11:09:01 字數 1352 閱讀 7618

今天幫別人調**時,看到乙個樣式:

background-position: 50% 0;

background-size: 100% auto;

對background-size:100% auto,意思是背景寬度為元素寬度*100%,高度等比縮放。詳情可見css3 background。

對background-position很自然的以為百分比是根據父元素寬度計算的,但background-position真的不是,它有一套自己的原理。下面詳細介紹。

在看各類教程時有以下等價寫法:

那麼為什麼left,top就等價於0% 0%,right bottom等價於100% 100%呢?

background-postion:x y;
有了這個公式,就很容易理解百分百寫法了,推算一下也就很容易理解上面各類等價寫法了。

1、background-position:center center等價於background-position:50% 50%等價於background-position:?px ?px

例子中用到背景圖如下【尺寸:200px*200px】:

背景圖在容器中居中。

<

style

type

="text/css"

>

.wrap

style

>

<

div

class

="wrap"

>

div>

效果都是讓背景居中

如上通過設定百分比和關鍵字能實現背景圖居中,如果要實現通過具體值來設定居中該設定多少?

根據上面公式:

x=(容器的寬度-背景圖寬度)*x百分比=(300px-200px)*50%=50px;

y=(容器的高度-背景圖高度)*y百分比=(300px-200px)*50%=50px;

即設定background-postion:50px 50px;

測試一下:

<

style

type

="text/css"

>

.wrap

style

>

<

div

class

="wrap"

>

div>

效果同樣居中。

css百分比定位和百分比尺寸

只有設定了定位的 relative,absolute,fixed 的元素才有left,top等屬性。子元素relative定位 百分比定位和百分比尺寸都是相對于父元素,無論父元素有沒有定位 子元素absolute定位 百分比定位和百分比尺寸都是相對於最近的定位了的祖先元素,如果沒有則相對於視窗。可以...

百分比布局

參考位址 螢幕的適配是我們android開發最經常做的事情之一,我們一直指望著能夠一套布局適配所有。於是在android5.0之後,提供了android support percent lib,這樣我們可以盡情的使用。使用的時候,我們嗯需要設定的有 layout marginpercent layo...

百分比布局

其中相對布局和幀布局官方是有支援庫的 compile com.android.support percent 25.3.0 但線性布局並沒有 public class percentlinearlayout extends linearlayout override protected void o...