成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

新提案,初識(shí)CSS的Object-View-Box屬性

開發(fā) 前端
在這篇文章中,將帶領(lǐng)大家了解Jake Archibald在今年年初提出的新的CSS屬性object-view-box。它允許我們裁剪或調(diào)整被替換的HTML元素,就像一個(gè) </img> 或 <video>。

在開發(fā)時(shí),一直希望有一種原生的CSS方式來裁剪圖片,并將其定位在我需要的任何方向。這可以通過使用一個(gè)額外的HTML元素和不同的CSS屬性來實(shí)現(xiàn),后面解釋。

在這篇文章中,將帶領(lǐng)大家了解Jake Archibald在今年年初提出的新的CSS屬性object-view-box。它允許我們裁剪或調(diào)整被替換的HTML元素,就像一個(gè) </img> 或 <video>。

問題

在下面的例子中,我們有一個(gè)需要裁剪的圖像。請(qǐng)注意,我們只想要該圖像的特定部分。

圖片

目前,我們可以通過以下方式之一來解決這個(gè)問題。

  • 使用<img> 并將其包裹在一個(gè)額外的元素中。
  • 使用圖像作為background-image 并修改位置和大小。

包在一個(gè)額外的元素中

這是一個(gè)常見的解決這個(gè)問題的方法,步驟如下:

  • 將圖像包裹在另一個(gè)元素中(在我們的例子中是<figure>)。
  • 添加position: relative? 和overflow: hidden
  • 為圖片添加了position: absolute,并對(duì)定位和尺寸值進(jìn)行了調(diào)整,以實(shí)現(xiàn)這一結(jié)果。
<figure>
<img src="img/brownies.jpg" alt="">
</figure>
figure {
position: relative;
width: 300px;
aspect-ratio: 1;
overflow: hidden;
border-radius: 15px;
}
img {
position: absolute;
left: -23%;
top: 0;
right: 0;
bottom: 0;
width: 180%;
height: 100%;
object-fit: cover;
}

將圖像作為背景

在這個(gè)解決方案中,我們使用一個(gè) ??<div>?? 將圖片作為背景,然后我們改變位置和大小值。

<div class="brownies"></div>
.brownies {
width: 300px;
aspect-ratio: 3 / 2;
background-image: url("brownies.jpg");
background-size: 700px auto;
background-position: 77% 68%;
background-repeat: no-repeat;
}

這很好,但如果我們想把上述內(nèi)容應(yīng)用于 ??<img>??? 呢?嗯,這就是 ??object-view-box?? 的作用。

引入Object-View-Box

屬性 object-view-box 可能會(huì)在 Chrome 104 中支持?,F(xiàn)在可以在 Chrome canary中使用。

根據(jù)CSS規(guī)范。

object-view-box屬性在一個(gè)元素上指定了一個(gè) "視圖框",類似于<svg viewBox>屬性,在元素的內(nèi)容上進(jìn)行縮放或平移。

該屬性的值是 <basic-shape-rect> = <inset()> | <rect()> | <xywh()>。在本文的演示中,我將著重介紹inset()的用法。

我們回到這個(gè)問題上來。

有了 object-view-box,我們就能用inset從四邊(上、右、下、左)畫一個(gè)矩形,然后應(yīng)用object-fit: cover來避免變形。

<img src="img/brownies.jpg" alt="">
img {
aspect-ratio: 1;
width: 300px;
object-view-box: inset(25% 20% 15% 0%);
}

這是怎么做到的呢?我們往下看。

圖像的內(nèi)在尺寸

內(nèi)在大小是默認(rèn)的圖像寬度和高度。我處理的圖像大小為 ??1194 × 1194 px??.

img {
aspect-ratio: 1;
width: 300px;
}

使用上述CSS,圖片的渲染尺寸將是 ??300×300px??。

圖片圖片

我們的目標(biāo)是在固有圖像上畫一個(gè)矩形。要做到這一點(diǎn),我們使用 ??inset()??值。

使用 inset

inset()值將基于原始圖像的寬度和高度,從而形成一個(gè)裁剪過的圖像。它將幫助我們繪制一個(gè)嵌入的矩形并控制四個(gè)邊緣,類似于處理margin或padding。

inset 值定義了一個(gè)嵌入的矩形。我們可以控制四個(gè)邊緣,就像我們處理margin或padding一樣。在下面的例子中,卡片的所有邊緣都有一個(gè)20px的嵌入。

圖片圖片

回到 object-view-box:

img {
aspect-ratio: 1;
width: 300px;
object-view-box: inset(25% 20% 15% 0%);
}

以下是上述內(nèi)容的背后的樣子,值 ??25%、20%、15%???和??0%?? 的值分別代表頂部、右側(cè)、底部和左側(cè)。

圖片

修復(fù)圖像失真

如果圖像的尺寸是正方形的,那么裁剪后的結(jié)果將是變形的。

圖片

這可以使用 object-fit 屬性來解決。

img {
aspect-ratio: 1;
width: 300px;
object-view-box: inset(25% 20% 15% 0%);
object-fit: cover;
}

圖片

放大或縮小

我們可以使用 inset 來放大或縮小圖像。根據(jù)我的測(cè)試,過渡或動(dòng)畫不能與object-view-box工作。

圖片

我們也可以用一個(gè)負(fù)的 ??inset??? 值來縮小

圖片

想象一下,這對(duì)于能夠縮放圖像是多么有用,而不需要用一個(gè)額外的元素來包裝它。

事例

地址:https://codepen.io/shadeed/pen/yLvXJRd。

期待這個(gè)新的屬性盡快到來!

責(zé)任編輯:姜華 來源: 大遷世界
相關(guān)推薦

2011-06-14 15:45:02

Qt Object

2021-12-27 07:59:50

ECMAScript JSON模塊Node.js

2021-02-25 15:51:41

Go語(yǔ)言模糊測(cè)試功能

2022-01-11 12:13:33

JavaScript編程語(yǔ)言

2024-03-29 06:32:46

CSSJavaScript前端

2024-11-19 09:10:19

迭代器Go語(yǔ)言

2023-12-27 08:03:53

Go優(yōu)化代碼

2021-07-27 13:08:52

微軟Chrome新提案

2023-03-07 12:07:07

2021-12-13 08:52:42

Go 泛型

2010-08-26 10:20:43

2022-11-15 09:16:59

2023-08-30 13:23:12

異步編程JavaScript

2024-09-12 09:38:13

2021-08-09 10:36:20

GoSlices Maps

2010-09-10 15:16:51

CSSdisplay

2013-05-20 15:45:12

CSS

2022-07-13 08:53:28

函數(shù)Go語(yǔ)言

2021-07-21 17:19:03

Fedora 35軟件包更新

2010-08-25 15:34:48

CSSoverflow
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 99热这里都是精品 | 亚洲人在线 | 日韩毛片中文字幕 | 国产在线麻豆精品入口 | 99精品视频在线 | 国产一区二区在线免费播放 | 男女性毛片 | 国产精品高清在线 | 91精品国产高清久久久久久久久 | 性一交一乱一伦视频免费观看 | 欧美成年网站 | 欧美一级大片免费看 | 日韩一级电影免费观看 | 久久爱黑人激情av摘花 | av一区二区三区 | 成人免费视频在线观看 | 日韩一区二区三区视频在线播放 | 一区二区三区在线电影 | 中国一级特黄真人毛片 | 亚洲成人一二区 | 2021狠狠干 | 久久精品网 | 91精品国产一区二区三区 | 先锋影音资源网站 | 亚洲日韩中文字幕 | 一区二区在线免费观看 | 国产亚洲欧美在线 | 国产精品成人一区二区三区 | 91精品久久久久久久久中文字幕 | 一区二区三区视频在线观看 | 黄色一级视频 | av黄色在线 | 国产免费自拍 | 激情欧美日韩一区二区 | 欧美激情视频一区二区三区在线播放 | 这里有精品| 国产精品免费在线 | 欧洲色综合 | 91精品久久久久久久久久 | 欧美日韩国产精品一区二区 | 久久久久国产一区二区三区 |