【前端布局规范与方案】三种传统布局方式

【前端教程】从传统登录页到现代表单设计:阿里云登录界面代码解析与优化 本文分析了阿里云邮箱登录页面的传统实现方式,指出其存在的表格布局、空格定位等过时技术问题。原代码存在语义错位、可维护性差、响应式缺陷等弊端,包括滥用iframe、缺失表单验证、样式耦合等问题。优化方案采用HTML5语义化标签、CSS Flexbox布局、分离样式与结构等现代前端技术,重构后代码具有更好的可维护性、完善的表单交互和响应式适配能力,同时移除了不必要的iframe请求。这一改造过程展示了从传统前端向现代化开发的演进路径。 阅读详情

三种传统布局方式

网页布局的本质实际上就是:用CSS来摆盒子,将盒子摆到相应的位置。

CSS 提供了三种传统的布局方式,即盒子如何进行排列:

  1. 标准流/文档流
  2. 浮动
  3. 定位

而在实际开发中,往往一个页面中这三种方式都会使用到。

1.标准流/文档流

标准流:即标签按照规定好的默认方式排列,是最基本的网页布局方式。

  1. 块级元素会独占一行,从上向下顺序排列。
  2. 行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。

2.浮动

浮动可以让多个块级元素在一行内排列显示。

由此可以得到两个网页布局的准则:

  1. 多个块级元素纵向排列 — 标准流

    多个块级元素横向排列 — 浮动

  2. 先设置盒子的大小,再设置盒子的位置。

浮动的语法如下:

选择器 {
	float: none | left | right
}

float 属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。其具体值如下:

  • none(默认) — 元素不浮动
  • left — 向左浮动
  • right — 向右浮动
2.1 浮动元素的特性

添加浮动后的元素,会具有很多特性:

  1. 浮动元素会脱离标准流,即元素不再占据其原先在标准流中的位置。
  2. 浮动元素会在一行内显示,并且将元素的顶部对齐(若父级元素的宽度装不下这些浮动元素,则会换行对齐)。
  3. 浮动元素会具有行内块元素的特性,即对于块级盒子而言,若其没有设置宽度,则其宽度默认和父级元素一样,而添加浮动后,元素的大小根据其内容来决定!
2.2 浮动的常用设计模式

浮动元素和处于标准流父级搭配使用。

即,先用处于标准流的父级元素确定上下位置,然后内部子元素采取浮动确定其左右位置。

2.3 注意点

浮动元素只会影响其后面的标准流,而不会影响其前面的标准流。

2.4 清除浮动

为什么要清除浮动?

由于父盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后导致父盒子高度为 0,即父元素高度塌陷,就会影响下面的标准流盒子。

清除浮动的语法如下:

选择器 {
	clear:属性值;
}

其属性值如下:

  1. left — 不允许左侧有浮动元素
  2. right — 不允许右侧有浮动元素
  3. both — 同时清除左右两侧浮动的影响

在实际开发中,基本上只会使用 clear:both。

而实际上,BFC也可以解决父元素高度塌陷的问题。

3.定位

前面说过,浮动可以让多个块级的盒子在同一行中没有缝隙地排列显示,因此常用于横向排列盒子。

而定位则可以让盒子自由的在某个盒子内移动,或者固定在屏幕中的某一位置,并且可以压住其它盒子。

3.1 定位的组成

定位 = 定位模式 + 边偏移

  • 定位模式 — 用于指定一个元素在文档中的定位方式
  • 边偏移 — 决定该元素的最终位置
3.2 定位模式

定位模式通过 CSS 的 position 属性来进行设置:

  1. static — 静态定位
  2. relative — 相对定位
  3. absolute — 绝对定位
  4. fixed — 固定定位
3.3 边偏移
  • top — 顶端偏移量,定义元素相对于其父元素上边线的距离
  • bottom — 底端偏移量,定义元素相对于其父元素下边线的距离
  • left — 左侧偏移量,定义元素相对于其父元素左边线的距离
  • right — 右侧偏移量,定义元素相对于其父元素右边线的距离
3.4定位叠放次序 z-index

在使用定位布局时,可能会出现盒子重叠的情况。可以使用z-index来控制盒子得前后次序(Z轴)。

语法如下:

选择器 {
	z-index: 1;
}

其中:

  • 数值可以是正整数、负整数或0,默认是auto,数值越大,盒子越靠上。
  • 如果属性值相同,则按照书写顺序,后来居上。
  • 数字后面不能加单位。
  • 只有定位的盒子才有z-index属性。
3.5 定位特殊性
  1. 行内元素添加绝对或者固定定位,可以直接设置高度和宽度。
  2. 块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小。
  3. 浮动元素只会压住下面标准流的盒子,但是不会压住下面标准流盒子里面得文字或图片;但是绝对定位和固定定位会压住下面标准流得所有内容。

补充内容:4种定位模式

1.static
2.relative
3.absolute
4.fixed
布局设计规范 作者:李哲定 时间:2019年7月8日 空间布局是体系化视觉设计的起点,和传统的平面设计的不同之处在于,UI 界面的布局空间要基于『动态、体系化』的角度出发展开。我们受到建筑界大师柯布西耶的模度思想的启发,基于『秩序之美』的原则,探索 UI 设计中的动态空间秩序,形成了 Ant Design 的界面布局方式,为设计者构筑具备理性之美的布局空间创造了条件。 在中后台视觉体系中定义布局系统,我们建... 阅读详情

相关推荐

2020最新版前端学习路线图--让前端学习变得美如画

前端学习路线是螺旋上升的,前端学习需要耗费的时间和精力不比其他编程的少,由于前端稳健性的特点,使其成为大多数企业开发的刚需编程语言。 在网上看到有很多的前端学习路线图,但大部分的前端学习路线图是很零碎的,没有系统的前端学习目标和重点知识,也不知道学到什么程度可以找工作。黑马程序员的前端学习路线图是根据主流企业的前端要求不断更新的,黑马程序员的视频库能为你提供各个阶段的自学教程。 前端入门小白在网上...

CZ-001的博客 1万+

Web前端之盒模型

兄弟元素之间的外边距的重叠,对于开发是有利的,所以我们不需要进行处理。

花&败 2828

前端实习项目经历:自适应web网站

背景 项目为重庆友杰康体健身中心官网,项目要求为html5,css3,响应式。任务主要分为网站设计,前端制作,后台交接三部分。其中前端由我和另外两位小伙伴合作完成。由于客户需求总是不停地在变,所以项目持续了很长时间,如今整个网站接近尾声,庆贺的同时,还是不得不总结此次过程中遇到的各种坑。希望后面自己的代码能写得更漂亮,更严谨,更具灵活性。 项目网址:http://www.cqyjty.com/i

Happy joker never give up 4695

熟练使用flex布局

flex是一种功能非常丰富的布局模式,是为了弥补已有的布局手段的短板。作为一种功能丰富的布局模式,它一口气解决以下全部问题: 如何支持横向布局和纵向布局 百分比模式的动态宽度和动态高度如何实现 元素的排列方向和动态间距如何实现 自动换行 下面我们来逐个实现上面的所有场景。 基础用法 <div class="container"> <div class="item"></div> <div class="item"></

朱登凯的专栏 7180

51单片机-点亮LED和蜂鸣器

ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。ULN2003是大电流驱动陈列,多用于单片机、只能仪表、PLC、数字量输出卡等控制电路中。可直接驱动蜂鸣器、继电器等负载。void delay(u16 i) // i等于1大约10uswhile(i--);//取反,高低电平不断变化,产生脉冲delay(10);// 周期200us。

三日沐水 1126

PICO SCOPE 二次开发

基于C#开发一个简单的PICO示波器的上位机工作,与MCC600运动控制卡一起,实现数据自动采集

nixoncheng的博客 1147

前端常见的十种布局方式

前端布局有很多种,各式各样,每个都有它自己适合的应用场景,并不是说主流或者常用好的就是最好的,视情况而定,个人用的比较多的是 flex 布局🤭。

qq_20382175的博客 2259

ROS2+PYTHON VENV虚拟环境配置方法

ROS2+PYTHON VENV配置方法本篇针对的是python。

下雨夏云的博客 555

前端框架布局规范

同一个产品不同页面的布局规则应该尽量保持统一,即大部分页面都是采用一样的布局,特殊页面可以单独处理。 我们可以先看一下常见的Web产品是采用什么样的布局设计,这样我们就有一个大概的认知感受了。 Web产品遵循原型布局规范,有以下几点好处: 确定产品的布局规范之后,可以制作成属于自己的母版然后快速添加到相应页面。 再去画页面的时候,只需要从内容区的固定位置开始画起来,比如(200,150),简单好记。 展现给大家看的原型效果,每个页面的布局都是统一的,体现了产品经理的原型能力很专业。 常见的原型布局有以下几

wwppp987的博客 1620

YOLO项目部署:从Python脚本到Docker容器的企业级交付全流程

YOLO模型企业级Docker部署方案 核心挑战 环境一致性:解决"本地能跑,服务器崩掉"问题 可扩展性:支持单实例到多实例扩展 稳定性:确保99.9%可用性 部署流程 项目改造:模块化代码,分离配置 Docker镜像:支持CPU/GPU环境 API服务:封装推理逻辑 监控告警:实现自动化运维 技术方案 需求 解决方案 环境一致性 Docker镜像+依赖冻结 可扩展性 K8s+负载均衡 稳定性 健康检查+自动重启 项目结构 模块化代码组织 外部化配置管理 精确依赖版本控制 摘要重点:通过

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1230

【软考】系统集成项目管理工程师(一)信息化知识

软考中级——系统集成项目管理工程师备考干货第一章:信息化知识。

商务合作 | 共同学习 | 携手共进 9万+

【前端设计】前端设计原则,布局规范

内容总结于 elementUI,iview,bootStrap中文网,互联网 前端设计原则 一致性 Consistency   与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念; 在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。 反馈 Feedback   控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作

而浮生若梦,为欢几何 2万+

【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法

【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法

jks212454的博客 2307

多布局怎么搭建_【第五课】更丰富的布局方式

前言从零开始学前端系列课程,与传统的视频大课堂教学不同,没有填鸭;也普通做练习题的方式不同,没有假想的模拟题。 本课程拆出80个左右必须掌握的技能点,并对其分组,从易到难地列出学习曲线。同时从真实项目中拆解出与技能一一对应的不同难度的任务,通过解决任务来巩固夯实知识。 这就是IT修真院集自适应学习、师兄辅导、在线一站式学习的DWS学习法(Learning by Doing ,Learing by ...

weixin_39558521的博客 100

46、搭建与配置FTP服务器全攻略

本文详细介绍了如何搭建与配置FTP服务器,以vsftpd为例,涵盖了FTP基础概念、安装步骤、服务控制、安全设置、用户权限管理、文件上传支持、互联网共享配置、客户端使用以及常见问题解决等内容。旨在帮助用户高效、安全地实现文件共享与管理。

time3的博客 88

【图像超分】论文复现:新手入门必备!Pytorch实现SRGAN!手把手详细教程!代码注释详尽!可用于训练自己的数据集!实时验证模型性能!绘制PSNR曲线图!附训练好的各放大倍数的模型权重文件!

【图像超分】论文精读:SRResNet/SRGAN【图像超分】论文复现:万字长文!Pytorch实现SRResNet代码修改无报错!踩坑全记录!适合各种深度学习新手!帮助你少走弯路!附修改后的代码和PSNR最优的模型权重文件!请配合上述论文精读文章使用,效果更佳!与原论文描述不一样的实现部分,也即可以修改的部分数据集使用:论文中是ImageNet随机选35000张图像,本文是VOC2012数据集16700张图像。数据集预处理:裁剪大小不同,论文是96×96,本文是88×88。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 6853

前端网页布局实战:从HTML基础到Flexbox与Grid响应式设计

网页布局是前端开发的核心技术之一,涉及如何通过CSS控制HTML元素在页面上的排列与呈现。其基本原理基于盒模型,每个元素都被视为包含内容、内边距、边框和外边距的矩形盒子。随着Web技术的发展,布局方式从传统的浮动和定位演进到现代的Flexbox和CSS Grid,这些技术显著提升了布局的灵活性和开发效率。Flexbox专注于一维布局,适合处理元素在单行或单列中的对齐与分布;而CSS Grid是强大的二维系统,能够精确控制行和列的复杂排列。在工程实践中,结合响应式设计通过媒体查询实现跨设备适配,可以打造出既美

weixin_30718391的博客 413

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

移动端----常见布局

rem布局就是让页面中的元素可以做到自适应,当设备大小发生改变时,等比例适配当前的设备。页面元素使用rem做尺寸单位。

m0_74065758的博客 979

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

wpf textbox垂直对齐方式_【第五课】更丰富的布局方式

前言从零开始学前端系列课程,与传统的视频大课堂教学不同,没有填鸭;也普通做练习题的方式不同,没有假想的模拟题。 本课程拆出80个左右必须掌握的技能点,并对其分组,从易到难地列出学习曲线。同时从真实项目中拆解出与技能一一对应的不同难度的任务,通过解决任务来巩固夯实知识。 这就是IT修真院集自适应学习、师兄辅导、在线一站式学习的DWS学习法(Learning by Doing ,Learing by ...

weixin_39635459的博客 260

前端flex布局

flex-basis:0,元素可以在flex-basis为 0 的基础上伸缩。flex-basis:0,元素可以在flex-basis为 0 的基础上伸缩。如果父容器有多个子元素,则其中一个设置有flex:1的子元素会占用所有剩余的可用空间。align-self: 是用于在 Flex 布局中控制单个 Flex 项目(子元素)在交叉轴上的对齐方式的 CSS 属性。这会导致清除浮动的问题,并需要额外的代码来确保正确的布局。flex-grow:指定 Flex 项目的放大比例,决定了子元素在剩余空间中分配的比例。

qq_38712867的博客 445

flex弹性布局

1. 为什么出现Flex弹性盒布局? 布局的传统解决方案,基于盒子模型,依赖 display 属性 + position属性 + float属性。它对于有些特殊布局非常不方便,比如,垂直居中就不容易实现(现有技术满足不了开发需求) 3、flex发展历史 2009年W3C 提出概念,但是官方没有flex这个词。当时使用display:box;表示弹性布局 2011年浏览器厂商决定使用flexbox,来形容它的布局特点 2015年W3C正式将其修改为flexbox布局 2016年5月官方正式

y1815151的博客 800

鸿蒙原生ArkTS布局方式之DatePickerDialog日期弹窗

文章摘要: 本文详细介绍了鸿蒙原生ArkTS框架中的DatePickerDialog日期弹窗组件。作为HarmonyOS NEXT的核心交互控件,该组件遵循声明式UI开发范式,通过简洁的ArkTS代码即可实现标准化日期选择功能。文章从系统架构、ArkTS特性入手,深入解析DatePickerDialog的设计原理、视觉交互特点及技术实现方案。重点剖析了项目结构组织与核心代码逻辑,包括状态管理(@State)、布局构建和弹窗调用方法,展示了如何快速集成高可用性日期选择器,提升开发效率与用户体验一致性。该组件适

2601_96348031的博客 418

从零构建现代前端布局:Div与CSS最佳实践指南

基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。架构理解:掌握实时语音应用的完整技术链路(ASR→LLM→TTS)技能提升:学会申请、配置与调用火山引擎AI服务定制能力:通过代码修改自定义角色性格与音色,实现“从使用到创造”从0到1构建生产级别应用,脱离Demo,点击打开。

2600_94959849的博客 224

2026前端布局实战:从Flexbox到Grid的完整页面构建指南

CSS布局是前端开发的核心基础,其本质是解决元素在页面中的空间分配问题。传统流式布局作为浏览器默认渲染机制,通过文档流和盒模型建立了网页的底层排列逻辑。随着响应式设计需求的增长,Flexbox技术应运而生,专门针对一维布局场景提供了强大的对齐和空间分布能力。而CSS Grid布局则革命性地解决了二维布局挑战,通过声明式语法实现复杂的网格结构。这些布局技术的工程价值在于能够创建适应不同屏幕尺寸的响应式界面,提升用户体验的一致性。在实际应用场景中,Flexbox常用于导航栏、卡片列表等线性排列组件,Grid则更

weixin_34294649的博客 440

CSS 核心体系解析|网页视觉渲染与布局底层逻辑

CSS(Cascading Style Sheets)层叠样式表层叠、继承、优先级,这三个特性是 CSS 运行的底层核心。结构与样式分离将网页结构(HTML)与视觉表现(样式)完全解耦,让页面维护、迭代、复用更加高效,这也是现代前端工程化的基础。层叠性:多个样式同时作用于同一元素,自动叠加生效继承性:文本类样式自动向下继承子元素,简化代码冗余优先级:冲突样式按照权重规则择优生效,避免样式混乱真正的 CSS 开发,不是“调样式”,而是掌控渲染规则、把控布局结构、优化视觉体验、兼顾兼容性与性能。

2603_96589662的博客 654

移动端WEB开发常见布局

流式布局(百分比布局) 流式布局,就是百分比布局,也称非固定像素布局。 通过将盒子的宽度设置成百分比,从而根据屏幕的宽度来进行伸缩,不受固定像素的限制,内容向两侧填充。 该布局是移动web开发使用的比较常见的布局方式。 注意事项 制作过程中,需要定义页面的最大和最小支持宽度。 max-width最大宽度 (max-height最大高度) min-width最小宽度(min-height最小高度) ...

shea_mong 318
上一篇: 【前端布局技术】BFC、IFC详解
下一篇: 【前端布局技术】Flex布局
cannotbecounted
博客等级 码龄7年 101粉丝 59原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值