Um plug -in que fornece uma API composta para fornecer a elementos uma proporção fixa.
Instale o plugin do NPM:
npm install -D @tailwindcss/aspect-ratio
Em seguida, adicione o plug-in ao seu arquivo tailwind.config.js
e desative o plug-in Core aspectRatio
para evitar conflitos com os utilitários nativos aspect-ratio
incluídos no Tailwind CSS v3.0:
// tailwind.config.js
module . exports = {
theme : {
// ...
} ,
corePlugins : {
aspectRatio : false ,
} ,
plugins : [
require ( '@tailwindcss/aspect-ratio' ) ,
// ...
] ,
}
Combine as classes aspect-w-{n}
e aspect-h-{n}
para especificar a proporção para um elemento:
< div class =" aspect-w-16 aspect-h-9 " >
< iframe src =" https://www.youtube.com/embed/dQw4w9WgXcQ " frameborder =" 0 " allow =" accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture " allowfullscreen > </ iframe >
</ div >
Use aspect-none
para remover qualquer comportamento da proporção:
< div class =" aspect-w-16 aspect-h-9 lg:aspect-none " >
<!-- ... -->
</ div >
Ao remover o comportamento da proporção, se os elementos aninhados tiverem as classes w-{n}
ou h-{n}
, verifique se eles são declarados novamente com um prefixo de ponto de interrupção correspondente:
< div class =" aspect-w-16 aspect-h-9 lg:aspect-none " >
< img src =" ... " alt =" ... " class =" w-full h-full object-center object-cover lg:w-full lg:h-full " />
</ div >
Observe que, devido à maneira como isso atualmente precisa ser implementado (o truque antigo do fundo de preenchimento), você precisa atribuir a proporção a um elemento pai e fazer do elemento real que você está tentando dimensionar o único filho desse pai.
Depois que a propriedade aspect-ratio
é suportada nos navegadores modernos, adicionaremos o suporte oficial ao próprio CSS do Tailwind CSS e depreciaremos esse plug-in.
As classes de proporção de até 16 são geradas por padrão:
Largura | Altura |
---|---|
aspect-w-1 | aspect-h-1 |
aspect-w-2 | aspect-h-2 |
aspect-w-3 | aspect-h-3 |
aspect-w-4 | aspect-h-4 |
aspect-w-5 | aspect-h-5 |
aspect-w-6 | aspect-h-6 |
aspect-w-7 | aspect-h-7 |
aspect-w-8 | aspect-h-8 |
aspect-w-9 | aspect-h-9 |
aspect-w-10 | aspect-h-10 |
aspect-w-11 | aspect-h-11 |
aspect-w-12 | aspect-h-12 |
aspect-w-13 | aspect-h-13 |
aspect-w-14 | aspect-h-14 |
aspect-w-15 | aspect-h-15 |
aspect-w-16 | aspect-h-16 |
Você pode configurar quais valores e variantes são gerados por este plug -in sob a tecla aspectRatio
em seu arquivo tailwind.config.js
:
// tailwind.config.js
module . exports = {
theme : {
aspectRatio : {
1 : '1' ,
2 : '2' ,
3 : '3' ,
4 : '4' ,
}
} ,
variants : {
aspectRatio : [ 'responsive' , 'hover' ]
}
}
O CSS V3.0 do Tailwind V3.0 enviado com suporte de razão de aspecto nativo e, embora esses novos utilitários sejam ótimos, a propriedade aspect-ratio
não é suportada no Safari 14, que ainda possui uso global significativo. Se você precisar suportar o Safari 14, este plug -in ainda é a melhor maneira de fazer isso.
Embora seja tecnicamente possível usar os novos utilitários nativos aspect-ratio
bem como esse plug-in no mesmo projeto, ele realmente não faz muito sentido fazê-lo. Se você puder usar os novos utilitários de proporção de aspecto nativo, basta usá-los em vez deste plug-in, pois eles são muito mais simples e funcionam muito melhor.
No entanto, se você deseja usar as duas abordagens em seu projeto, talvez como uma maneira de fazer a transição lentamente da abordagem do plug -in para os novos utilitários nativos, você precisará adicionar os seguintes valores ao seu arquivo tailwind.config.js
:
module . exports = {
// ...
theme : {
aspectRatio : {
auto : 'auto' ,
square : '1 / 1' ,
video : '16 / 9' ,
1 : '1' ,
2 : '2' ,
3 : '3' ,
4 : '4' ,
5 : '5' ,
6 : '6' ,
7 : '7' ,
8 : '8' ,
9 : '9' ,
10 : '10' ,
11 : '11' ,
12 : '12' ,
13 : '13' ,
14 : '14' ,
15 : '15' ,
16 : '16' ,
} ,
} ,
}
Isso é necessário, pois os valores aspectRatio
padrão são substituídos pelos valores deste plug -in.