html5 异形按钮,css3打造一款漂亮的卡哇伊按钮

2023-11-06 19:20

本文主要是介绍html5 异形按钮,css3打造一款漂亮的卡哇伊按钮,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

效果图如下:

01777ae85924332b05f5a04559154ce9.png

源码如下:

复制代码代码如下:

BonBon Buttons - Sweet CSS3 buttons

html {

background-color: #ddd;

font: 62.5%/1 "Lucida Sans Unicode","Lucida Grande",Verdana,Arial,Helvetica,sans-serif;

}

body { padding: 100px; }

#wrapper { text-align: center; }

/*It appears that the Pictos Font resets the line-height of the icon.. so if you are using them, delete the line below. */

.icon:before { line-height: .7em; }

Button

测试

测试

测试

测试

测试

测试

测试

buttons.css:

复制代码代码如下:

/* -------------- THE button -------------- */

.button {

/* text */

text-decoration: none;

font: 24px/1em 'Droid Sans', sans-serif;

font-weight: bold;

text-shadow: rgba(255,255,255,.5) 0 1px 0;

-webkit-user-select: none;

-moz-user-select: none;

user-select: none;

/* layout */

padding: .5em .6em .4em .6em;

margin: .5em;

display: inline-block;

position: relative;

-webkit-border-radius: 8px;

-moz-border-radius: 8px;

border-radius: 8px;

/* effects */

border-top: 1px solid rgba(255,255,255,0.8);

border-bottom: 1px solid rgba(0,0,0,0.1);

background-image: -webkit-gradient(radial, 50% 0, 100, 50% 0, 0, from( rgba(255,255,255,0) ), to( rgba(255,255,255,0.7) )), url(noise.png);

background-image: -moz-radial-gradient(top, ellipse cover, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0) 100%), url(noise.png);

background-image: gradient(radial, 50% 0, 100, 50% 0, 0, from( rgba(255,255,255,0) ), to( rgba(255,255,255,0.7) )), url(noise.png);

-webkit-transition: background .2s ease-in-out;

-moz-transition: background .2s ease-in-out;

transition: background .2s ease-in-out;

/* color */

color: hsl(0, 0%, 40%) !important;

background-color: hsl(0, 0%, 75%);

-webkit-box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(0, 0%, 60%) 0 .1em 3px, hsl(0, 0%, 45%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

-moz-box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(0, 0%, 60%) 0 .1em 3px, hsl(0, 0%, 45%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(0, 0%, 60%) 0 .1em 3px, hsl(0, 0%, 45%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

}

/* -------------- button (tag) -------------- */

button.button {

border-left: none;

border-right: none;

}

button.button:hover {

cursor: pointer;

}

/* -------------- icon -------------- */

.button:before {

font: 1.2em/0 'Pictos', sans-serif;

content: attr(data-icon); /* gets the icon value from the custom data attribute and puts it infront of the button label */

margin-right: 0.4em;

}

/* icon only */

.icon {

font-weight: normal;

font-style: normal;

text-indent: -999em;

}

.icon:before {

margin-right: 0;

display: block;

height: 0;

text-indent: 0px;

}

/* -------------- colours -------------- */

.button.orange {

color: hsl(39, 100%, 30%) !important;

background-color: hsl(39, 100%, 50%);

-webkit-box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(39, 100%, 40%) 0 .1em 3px, hsl(39, 100%, 30%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

-moz-box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(39, 100%, 40%) 0 .1em 3px, hsl(39, 100%, 30%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(39, 100%, 40%) 0 .1em 3px, hsl(39, 100%, 30%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

}

.button.orange:hover { background-color: hsl(39, 100%, 65%); }

.button.blue {

color: hsl(208, 50%, 40%) !important;

background-color: hsl(208, 100%, 75%);

-webkit-box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(208, 50%, 55%) 0 .1em 3px, hsl(208, 50%, 40%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

-moz-box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(208, 50%, 55%) 0 .1em 3px, hsl(208, 50%, 40%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(208, 50%, 55%) 0 .1em 3px, hsl(208, 50%, 40%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

}

.button.blue:hover { background-color: hsl(208, 100%, 83%); }

.button.green {

color: hsl(88, 70%, 30%) !important;

background-color: hsl(88, 70%, 60%);

-webkit-box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(88, 70%, 40%) 0 .1em 3px, hsl(88, 70%, 30%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

-moz-box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(88, 70%, 40%) 0 .1em 3px, hsl(88, 70%, 30%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(88, 70%, 40%) 0 .1em 3px, hsl(88, 70%, 30%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

}

.button.green:hover { background-color: hsl(88, 70%, 75%); }

.button.pink {

color: hsl(340, 100%, 30%) !important;

background-color: hsl(340, 100%, 75%);

-webkit-box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(340, 70%, 50%) 0 .1em 3px, hsl(340, 80%, 40%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

-moz-box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(340, 70%, 50%) 0 .1em 3px, hsl(340, 80%, 40%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

box-shadow: inset rgba(255,254,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.15) 0 -0.1em .3em, /* inner shadow */

hsl(340, 70%, 50%) 0 .1em 3px, hsl(340, 80%, 40%) 0 .3em 1px, /* color border */

rgba(0,0,0,0.2) 0 .5em 5px; /* drop shadow */

}

.button.pink:hover { background-color: hsl(340, 100%, 83%); }

.button.transparent {

color: rgba(0,0,0,0.5) !important;

}

.button.transparent, .button.transparent:hover, .button.transparent:active {

background-color: transparent;

background-image: none;

}

.button.transparent:hover {

opacity: .9;

}

/* -------------- States -------------- */

.button:hover {

background-color: hsl(0, 0%, 83%);

}

.button:active {

background-image: -webkit-gradient(radial, 50% 0, 100, 50% 0, 0, from( rgba(255,255,255,0) ), to( rgba(255,255,255,0) )), url(noise.png);

background-image: -moz-gradient(radial, 50% 0, 100, 50% 0, 0, from( rgba(255,255,255,0) ), to( rgba(255,255,255,0) )), url(noise.png);

background-image: gradient(radial, 50% 0, 100, 50% 0, 0, from( rgba(255,255,255,0) ), to( rgba(255,255,255,0) )), url(noise.png);

-webkit-box-shadow: inset rgba(255,255,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.2) 0 -0.1em .3em, /* inner shadow */

rgba(0,0,0,0.4) 0 .1em 1px, /* border */

rgba(0,0,0,0.2) 0 .2em 6px; /* drop shadow */

-moz-box-shadow: inset rgba(255,255,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.2) 0 -0.1em .3em, /* inner shadow */

rgba(0,0,0,0.4) 0 .1em 1px, /* border */

rgba(0,0,0,0.2) 0 .2em 6px; /* drop shadow */

box-shadow: inset rgba(255,255,255,0.6) 0 0.3em .3em, inset rgba(0,0,0,0.2) 0 -0.1em .3em, /* inner shadow */

rgba(0,0,0,0.4) 0 .1em 1px, /* border */

rgba(0,0,0,0.2) 0 .2em 6px; /* drop shadow */

-webkit-transform: translateY(.2em);

-moz-transform: translateY(.2em);

transform: translateY(.2em);

}

.button:focus {

outline: none;

color: rgba(254,255,255,0.9) !important;

text-shadow: rgba(0,0,0,0.2) 0 1px 2px;

}

.button[disabled], .button[disabled]:hover, .button.disabled, .button.disabled:hover {

opacity: .5;

cursor: default;

color: rgba(0,0,0,0.2) !important;

text-shadow: none !important;

background-color: rgba(0,0,0,0.05);

background-image: none;

border-top: none;

-webkit-box-shadow: inset rgba(255,254,255,0.4) 0 0.3em .3em, inset rgba(0,0,0,0.1) 0 -0.1em .3em, /* inner shadow */

rgba(0,0,0,0.3) 0 .1em 1px, /* border */

rgba(0,0,0,0.2) 0 .2em 6px; /* drop shadow */

-moz-box-shadow: inset rgba(255,254,255,0.4) 0 0.3em .3em, inset rgba(0,0,0,0.1) 0 -0.1em .3em, /* inner shadow */

rgba(0,0,0,0.3) 0 .1em 1px, /* border */

rgba(0,0,0,0.2) 0 .2em 6px; /* drop shadow */

box-shadow: inset rgba(255,254,255,0.4) 0 0.3em .3em, inset rgba(0,0,0,0.1) 0 -0.1em .3em, /* inner shadow */

rgba(0,0,0,0.3) 0 .1em 1px, /* border */

rgba(0,0,0,0.2) 0 .2em 6px; /* drop shadow */

-webkit-transform: translateY(5px);

-moz-transform: translateY(5px);

transform: translateY(5px);

}

/* -------------- Fonts -------------- */

.serif {

font-family: 'Lobster', serif;

font-weight: normal;

}

/* -------------- Sizes -------------- */

.xs { font-size: 16px; }

.xl { font-size: 32px; }

/* -------------- Materials -------------- */

.button.glossy:after, .button.glass:after {

content: "";

position: absolute;

width: 90%;

height: 60%;

top: 0;

left: 5%;

-webkit-border-radius: .5em .5em 1em 1em / .5em .5em 2em 2em;

-moz-border-radius: .5em .5em 1em 1em / .5em .5em 2em 2em;

border-radius: .5em .5em 1em 1em / .5em .5em 2em 2em;

background-image: -webkit-gradient(linear, 0% 0, 100% 0, from( rgba(255,255,255,.55) ), to( rgba(255,255,255,.5) ),

color-stop(.5, rgba(255,255,255,0)), color-stop(.8, rgba(255,255,255,0)) );

background-image: -moz-linear-gradient(left, rgba(255,255,255,.55), rgba(255,255,255,0) 50%, rgba(255,255,255,0) 80%, rgba(255,255,255,.5) );

background-image: gradient(linear, 0% 0, 100% 0, from( rgba(255,255,255,.55) ), to( rgba(255,255,255,.5) ),

color-stop(.5, rgba(255,255,255,0)), color-stop(.8, rgba(255,255,255,0)) );

}

.button.glossy:active:after,

.button.glass:active:after,

.button.disabled:after,

.button[disabled]:after

{ opacity: .6; }

.button.icon.glossy:after,

.button.icon.glass:after { height: 75% ; }

/* -------------- Glass + Transparent -------------- */

.button.glass {

text-shadow: rgba(255,255,255,.5) 0 -1px 0, rgba(0,0,0,0.18) 0 .18em .15em;

}

.button.glass:active {

text-shadow: rgba(255,255,255,.3) 0 1px 0, rgba(0,0,0,0.15) 0 .18em .15em;

}

/* -------------- Shapes -------------- */

/* round */

.round, .round.glossy:after, .round.glass:after {

border-top: none;

-webkit-border-radius: 1em;

-moz-border-radius: 1em;

border-radius: 1em;

}

/* oval */

.oval {

border-top: none;

padding-left: .8em;

padding-right: .8em;

-webkit-border-radius: 5em / 2em;

-moz-border-radius: 5em / 2em;

border-radius: 5em / 2em;

}

.oval.glossy:after, .oval.glass:after {

top: 5%;

-webkit-border-radius: 5em / 2em 2em 1em 1em;

-moz-border-radius: 5em / 2em 2em 1em 1em;

border-radius: 5em / 2em 2em 1em 1em;

}

.oval.icon {

padding-left: .8em;

padding-right: .8em;

-webkit-border-radius: 1.5em / 1em;

-moz-border-radius: 1.5em / 1em;

border-radius: 1.5em / 1em;

}

.oval.icon.glossy:after, .oval.icon.glass:after {

-webkit-border-radius: 1.5em / 1em;

-moz-border-radius: 1.5em / 1em;

border-radius: 1.5em / 1em;

}

/* brackets */

.brackets, .brackets.glossy:after, .brackets.glass:after {

border-top: none;

-webkit-border-radius: .5em / 1em;

-moz-border-radius: .5em / 1em;

border-radius: .5em / 1em;

}

/* skew */

.skew {

border-top: none;

padding-right: 1.2em;

padding-left: 0.8em;

-webkit-border-radius: 5em 1em / 5em 1em;

-moz-border-radius: 5em 1em / 5em 1em;

border-radius: 5em 1em / 5em 1em;

}

.skew.glossy:after, .skew.glass:after {

left: 10%;

-webkit-border-radius: 7em 1em / 5em 1em;

-moz-border-radius: 7em 1em / 5em 1em;

border-radius: 7em 1em / 5em 1em;

}

.skew.icon {

padding-right: .9em;

padding-left: .8em;

}

/* back */

.back, .back.glossy:after, .back.glass:after {

border-top-color: rgba(255,255,255,0.5);

-webkit-border-radius: 1.6em 1.6em 1em 1em / 4em 4em 1em 1em;

-moz-border-radius: 1.6em 1.6em 1em 1em / 4em 4em 1em 1em;

border-radius: 1.6em 1.6em 1em 1em / 4em 4em 1em 1em;

}

.back.glossy:after, .back.glass:after {

left: 6%;

width: 88%;

}

/* knife */

.knife {

padding-left: 1.5em;

-webkit-border-radius: .2em .5em .5em 8em / .2em .5em .5em 5em;

-moz-border-radius: .2em .5em .5em 8em / .2em .5em .5em 5em;

border-radius: .2em .5em .5em 8em / .2em .5em .5em 5em;

}

.knife.glossy:after, .knife.glass:after {

left: 3%;

width: 97%;

-webkit-border-radius: .1em .5em .5em 8em / .1em .5em .5em 2em;

-moz-border-radius: .1em .5em .5em 8em / .1em .5em .5em 2em;

border-radius: .1em .5em .5em 8em / .1em .5em .5em 2em;

}

.knife.glossy.icon:after, .knife.glass.icon:after {

left: 5%;

width: 95%;

-webkit-border-radius: .5em .5em 1em 6em / .5em .5em 1em 4em;

-moz-border-radius: .5em .5em 1em 6em / .5em .5em 1em 4em;

border-radius: .5em .5em 1em 6em / .5em .5em 1em 4em;

}

/* shield */

.shield, .shield.glossy:after, .shield.glass:after {

-webkit-border-radius: .4em .4em 2em 2em / .4em .4em 3em 3em;

-moz-border-radius: .4em .4em 2em 2em / .4em .4em 3em 3em;

border-radius: .4em .4em 2em 2em / .4em .4em 3em 3em;

}

.shield {

padding-left: .8em;

padding-right: .8em;

}

.shield.icon {

padding-left: .6em;

padding-right: .6em;

}

/* drop */

.drop {

border-top: none;

-webkit-border-radius: 2em 5em 2em .6em / 2em 4em 2em .6em;

-moz-border-radius: 2em 5em 2em .6em / 2em 4em 2em .6em;

border-radius: 2em 5em 2em .6em / 2em 4em 2em .6em;

}

.drop.glossy:after, .drop.glass:after {

left: 4%;

-webkit-border-radius: 2em 6em 2em 1em / 2em 4em 2em 2em;

-moz-border-radius: 2em 6em 2em 1em / 2em 4em 2em 2em;

border-radius: 2em 6em 2em 1em / 2em 4em 2em 2em;

}

.drop.icon {

padding-right: .6em;

}

/* morph */

.morph {

border-top: none;

-webkit-border-radius: 5em / 2em;

-moz-border-radius: 5em / 2em;

border-radius: 5em / 2em;

-webkit-transition: -webkit-border-radius .3s ease-in-out;

-moz-transition: -moz-border-radius .3s ease-in-out;

transition: -moz-border-radius .3s ease-in-out;

}

.morph:hover {

-webkit-border-radius: .4em .4em 2em 2em / .4em .4em 3em 3em;

-moz-border-radius: .4em .4em 2em 2em / .4em .4em 3em 3em;

border-radius: .4em .4em 2em 2em / .4em .4em 3em 3em;

}

.morph:active {

-webkit-border-radius: .3em;

-moz-border-radius: .3em;

border-radius: .3em;

}

.morph:after {

display: none;

}

/* Some ugly hacks for FF.

Thanks to David Hund for some help - http://valuedstandards.com/static/test/buttons/ */

@-moz-document url-prefix() {

.button { text-align: center; }

.icon { padding: .5em 1em; }

.icon:before { margin-left: -.42em; float: left; }

.drop.icon { padding-right: 1.1em; }

.shield.icon { padding-left: 1.1em; padding-right: 1.1em; }

.skew.icon { padding-right: 1.4em; padding-left: 1.3em; }

.oval.icon { padding-left: 1.3em; padding-right: 1.3em; }

.knife { padding-left: 2em; }

}

/* Damn, this became a fat baby.. */

这篇关于html5 异形按钮,css3打造一款漂亮的卡哇伊按钮的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/358570

相关文章

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行