后端程序员的前端基础-前端三剑客之CSS

简介: 后端程序员的前端基础-前端三剑客之CSS

1 CSS简介


1.1 CSS概念

  • CSS :全称:Cascading Style Sheets 层叠样式表,定义如何显示HTML元素
  • 多个样式可以层层覆盖叠加,如果不同的css样式对同一html标签进行修饰,样式有冲突的
    应用优先级高的,不冲突的共同作用

CSS基础语法

  • CSS样式表定义在一对{}
  • {}中可以定义多个样式属性,样式属性名与样式属性值之间使用:分隔,多个样式属性之间使用;分隔
  • 定义样式属性列表的{}前需要定义选择器
<style type="text/css">
  选择器{样式属性名1:样式属性值1 ; 样式属性名2:样式属性值2...}
</style>

1.2 CSS功能

  • 修饰美化html网页。
  • 外部样式表可以提高代码复用性从而提高工作效率。
  • html内容与样式表现分离,便于后期维护。

1.3 CSS书写规范

CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明

  • 选择器通常是您需要改变样式的 HTML 元素。
  • 每条声明由一个属性和一个值组成。

1.4 基础语法

选择器{属性:值;属性:值…… }

CSS基础语法

  • CSS样式表定义在一对{}
  • {}中可以定义多个样式属性,样式属性名与样式属性值之间使用:分隔,多个样式属性之间使用;分隔
  • 定义样式属性列表的{}前需要定义选择器
<style type="text/css">
  选择器{样式属性名1:样式属性值1 ; 样式属性名2:样式属性值2...}
</style>

1.5 CSS选择器

注意事项:

  • 请使用花括号来包围声明
  • 如果值为若干单词,则要给值加引号
  • 多个声明之间使用分号;分开
  • css对大小不敏感,如果涉及到与html文档一起使用时,class与id名称对大小写敏感

2 CSS导入方式


2.1 内嵌方式(内联方式)

把CSS样式嵌入到html标签当中,类似属性的用法

<span style="color: red;font-size: 30px;">这是一个普通文字1</span>

2.2 内部方式

在head标签中使用style标签引入css

<style>
    p{
        color: blue;
        font-size: 40px;
    }
</style>

2.3 外部方式

将css样式抽成一个单独文件,使用者直接引用

<link href="css/my.css" rel="stylesheet">

2.4 @import方式

在页面中引入一个独立的单独文件

<style>
    @import url("css/my.css");
</style>

link和@import方式的区别:

  • link所有浏览器都支持,@import某些版本低的IE不支持
  • @import是等待html加载完成才加载
  • @import不支持js动态修改
<!-- 
CSS的引入方式:
  1、内联样式
    将样式写到标签上(style)
    style="color: red;font-size: 30px;
  2、内部样式
    在head标签中添加style标签,然后编写样式
    语法:
      选择器{
        属性名:属性值;
        ....
      }
  3、外部样式
    a、在外部css文件中的创建css文件,编写样式
    b、在当前页面使用link标签导入外部的css样式文件
    语法:
      选择器{
        属性名:属性值;
        ....
      }
    
  4、外部样式(不推荐使用)
    a、在外部css文件中的创建css文件,编写样式
    b、在style标签中  使用@import方式引入
    
优先级:内联样式 > 内部样式 > 外部样式
-->

3 CSS选择器


主要用于选择需要添加样式的html元素

3.1 基本选择器

元素选择器: 在head中使用style标签引入在其中声明元素选择器:html标签{属性:属性值}

id选择器: 给需要修改样式的html元素添加id属性标识,在head中使用style标签引入在其中声明id选择器: #id值{属性:属性值}


class选择器:给需要修改样式的html元素添加class属性标识,在head中使用style标签引入在其中声明class选择器: .class名{属性:属性值}

*选择器

备注:以上基本选择器的优先级从高到低:id选择器,class选择器,元素选择器

3.2 层次选择器

3.2.1 后代选择器

后代选择器指的是被选择元素的所有后代

语法:选择器1 选择器2{属性名:属性值;…}

3.2.2 子代选择器

子代选择器指的是被选择元素的所有子代(不包含孙子)

语法:选择器1>选择器2{属性名:属性值;…}

3.2.3 相邻兄弟选择器

相邻兄弟选择器指的是被选择元素的相邻兄弟(必须是相邻)

语法:选择器1+选择器2{属性名:属性值;…}

3.2.4 兄弟选择器

相邻兄弟选择器指的是被选择元素的相邻兄弟(不是必须相邻)

语法:选择器1~选择器2{属性名:属性值;…}

3.3 组合选择器

组合选择器直接是多个选择器同时设置样式

语法:选择器1,选择器2,…{属性名:属性值;…}

3.4 属性选择器

通过标签属性,选择对应的元素

语法:标签[属性名=属性值]{属性名:属性值;…}

3.5 伪类选择器

语法: 选择器 :伪类名称{属性名:属性值;…}

4 CSS属性

20*20像素图片 https://img2.baidu.com/it/u=3410439309,2985893529&fm=253&fmt=auto&app=138&f=GIF?w=20&h=20

20*20像素图片 https://img2.baidu.com/it/u=2339786243,3959457019&fm=253&fmt=auto&app=138&f=JPEG?w=20&h=20

400*400像素图片 https://img1.baidu.com/it/u=1665818856,4251504210&fm=253&fmt=auto&app=138&f=JPEG?w=400&h=400

780*600像素图片https://www.riji.cn/uploads/allimg/200519/56381-20051910502X02.jpg

4.1 文字属性

属性名 取值 描述
font-size 数值 设置字体大小
font-family 默体、宋体、楷体等 设置字体样式
font-style normal正常; italic斜体; 设置斜体样式
font-weight 100~900数值;bold;bolder; 粗体样式

4.2 文本属性

属性名 取值 描述
color 十六进制;表示颜色的英文单词; 设置文本颜色
text-indent 5px缩进5像素;20%缩进父容器宽度的百分之二十; 缩进元素中文本的首行
text-decoration none;underline;overline;blink; 文本的装饰线
text-align left;right;center 文本水平对齐方式
word-spacing normal;固定值; 单词之间的间隔
line-height normal;固定值; 设置文本的行高
text-shadow 四个取值依次是: 水平偏移;垂直偏移;模糊值;阴影颜色; 设置阴影及模糊效果

布局小技巧:如果设置行高和容器的高度一样。那么就会垂直居中

4.3 背景属性

属性名 取值 描述
background-color 16进制;用于表示颜色的英语单词; 设置背景色
background-image url(‘图片路径’) 设置背景图片
background-repeat repeat-y;repeat-x;repeat;no-repeat; 设置背景图的平铺方向
background-position top;bottom;left;right ; center; 改变图像在背景中的位置

背景覆盖:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style>
      div{
        width:800px;
        height: 630px;
        
        /* 背景属性 */
        /* 背景颜色 */
        /* background-color: #FF7F50; */
        /* 背景图片 */
        /* background-image: url(img/0.jpg); */
        /* 背景图片是否重复 */
        /* background-repeat: no-repeat; */
        /* 背景的位置 */
        /* background-position: 10px 10px; */
        
        /* 背景拉伸,一般不会用 */
        /* background-size: cover; */
        
        /* 简写形式 */
         background: url(https://www.riji.cn/uploads/allimg/200519/56381-20051910502X02.jpg) 10px 10px  no-repeat  #FF7F50;
      }
    </style>
    
  </head>
  <body>
    <div></div>
  </body>
</html>

4.4 列表属性

属性名 取值 描述
list-style-type disc等 改变列表的标识类型
list-style-image url(“图片地址”) 用图像表示标识
list-style-position inside;outside 标识出现在列表项内容之外还是内部

4.5 尺寸属性

  • width:设置元素的宽度

4.6 显示属性

显示属性display ,以下是常用取值:

  • none:不显示
  • block:块级显示
  • inline:行级显示

4.7 轮廓属性

绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。常用属性:

属性名 取值 描述
outline-style solid(实线)/dotted(虚线)/dashed(虚线)等 设置轮廓的样式
outline-color 16进制;用于表示颜色的英文 设置轮廓的颜色
outline-width 数值 设置轮廓的宽度

4.8 浮动属性float

  • 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

clear 属性

取值 描述
left 在左侧不允许浮动元素。
right 在右侧不允许浮动元素。
both 在左右两侧均不允许浮动元素。
none 默认值。允许浮动元素出现在两侧。
inherit 规定应该从父元素继承 clear 属性的值。

代码演示

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style>
      #d1{
        width: 200px;
        height: 200px;
        background-color: #5F9EA0;
        /* 浮动属性:当前这个元素会脱离文档流,直到遇到页面的边缘或者前一个浮动元素,才会停下来*/
        float: left;
      }
      #d2{
        width: 200px;
        height: 200px;
        background-color: #FF0000;
      }
      #d3{
        width: 200px;
        height: 200px;
        background-color: #F0F8FF;
      }
      #d4{
        width: 500px;
        height: 200px;
        background-color: aliceblue;
        /* 清除浮动 */
        clear: both;
      }     
      ul{
        list-style: none;
        /* 溢出裁剪 */
        overflow: hidden;
      }
      li{
        width: 100px;
        float: left;
      }
      a{
        text-decoration: none;
        color: #000000;
      }
      a:hover{
        color: #FFaabb;
      }
      img{
        float: left;
      }
    </style>
  </head>
  <body>
    <div id="d1">div1</div>
    <div id="d2">div2</div>
    <div id="d3">div3</div>
    <div id="d4">div4</div>
    
    <ul>
      <li><a href="#">首页</a></li>
      <li><a href="#">产品</a></li>
      <li><a href="#">下载</a></li>
      <li><a href="#">企业</a></li>
      <li><a href="#">联系我们</a></li>
    </ul>
    <div>
      <img src="image/0.jpg" width="200px" height="200px">这是许多段落文本这是许多段落文本这是许多段落文本这是许多段落文本这是许多段落文本这是许多段落文本
新华社北京3月3日电(记者于佳欣、许可)记者3日从全国两会新闻中心获悉,2023年全国两会将继续开设“代表通道”“委员通道”“部长通道”,各方面代表委员将讲述意愿心声,展现履职风采,列席大会的国务院部门负责人将解读政策措施,回应社会关切。“三大通道”均采用现场方式进行。
  “三大通道”聚焦经济社会发展重点主题,传递民生温度,彰显中国开放自信的形象,体现清新有序的会风,成为全国两会备受瞩目的活动,也是世界了解中国的重要窗口。新华社北京3月3日电(记者于佳欣、许可)记者3日从全国两会新闻中心获悉,2023年全国两会将继续开设“代表通道”“委员通道”“部长通道”,各方面代表委员将讲述意愿心声,展现履职风采,列席大会的国务院部门负责人将解读政策措施,回应社会关切。“三大通道”均采用现场方式进行。

  “三大通道”聚焦经济社会发展重点主题,传递民生温度,彰显中国开放自信的形象,体现清新有序的会风,成为全国两会备受瞩目的活动,也是世界了解中国的重要窗口。
    </div>
  </body>
</html>

4.9 定位属性

相对定位(relative):元素框偏移某个距离,元素仍保持其未定位前的形状,它原本所占的空间仍保留。

绝对定位(absolute):元素框从文档流完全删除,并相对于其包含块进行定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框。


固定定位(fixed):元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    
    <style>
      #dd{
        width: 800px;
        height: 400px;
        margin: 100px;
        background-color: #FFAABB;
        position: relative;
      }
      #d1{
        width: 400px;
        height: 100px;
        background-color: #5F9EA0;
      }
      #d2{
        width: 400px;
        height: 100px;
        background-color: #7FFFD4;
        /* 相对定位    left、right、top、bottom*/
        /* 相对定位是相对元素原来的位置进行定位 */
        position: relative;
        /* left: 30px;
        top: 30px; */
        right: 30px;
        bottom: 30px;
      }
      #d3{
        width: 400px;
        height: 100px;
        background-color: #FF0000;
        /* 绝对定位 */
        position: absolute;
        /* 绝对定位:如果父容器没有定位属性,那么定位就是相对于页面的0,0坐标进行定位 
              如果父容器有定定位为属性,那么定位就是相对于父容器的顶点坐标进行定位
              绝对定位会让当前元素脱离文档流*/
        left: 30px;
        top: 30px;
      }
      
      #left{
        width: 100px;
        height: 80px;
        background-color: #FF0000;
        /* 固定定位 */
        position: fixed;
        left: 0px;
        top: 300px;
      }
      #right{
        width: 100px;
        height: 80px;
        background-color: #FF0000;
        /* 固定定位 */
        position: fixed;
        right: 0px;
        top: 300px;
      }
    </style>
  </head>
  <body>
    
    <div id="dd">
      <div id="d1">div1</div>
      <div id="d2">div2</div>
      <div id="d3">div3</div>
    </div>
    
    <div id="left">
      点击就送
      一刀9999
    </div>
    <div id="right">
      我是渣渣辉
      是兄弟就来
    </div>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
  </body>
</html>

5 CSS盒子模型


盒子模型图

5.1 边框相关属性

属性名 取值 描述
border-style solid;double;dashed;dotted等 设置边框的样式
border-color 16进制;用于表示颜色的英文; 设置边框的颜色
border-width 数值 设置边框的粗
border-radius 数值 设置圆角边框

5.2 外边距相关属性

margin:外间距,边框和边框外层的元素的距离

  • margin:auto ; 水平居中
属性名 取值 描述
margin top;right;bottom;left 四个方向的距离
margin-top 数值 上间距
margin-bottom 数值 下间距
margin-left 数值 左间距
margin-right 数值 右间距

5.3 内边距相关属性

padding:内间距,元素内容和边框之间的距离((top right bottom left))

属性值 描述
padding-left 左内边距
padding-right 右内边距
padding-top 上内边距
padding-bottom 下内边距

代码演示

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    
    <style>
      
      #d1{
        /* 边框属性 */
        /* 边框颜色 */
        /* border-color: red; */
        /* 边框的样式  solid实心线 double双实线  dashed 虚线  dotted 虚点*/
        /* border-style: dashed; */
        /* 边框的宽度 */
        /* border-width: 5px; */
        /* 简写    对四条边进行同样的设置*/
        border: 1px solid red;
        /* 对单独某一个边框进行设置 */
        /* border-left:  1px solid red; */
        
        /* 内边距 */
        /* 单独设置 */
        /* padding-left: 20px; */
        /* 上右下左的顺序进行设置 */
        /* padding: 10px; */
        /* 上下10px   左右20px */
        /* padding: 10px 20px; */
        /* 上10px   左右20px  下30px*/
        /* padding: 10px 20px 30px; */
        /* 上右下左的顺序进行设置 */
        padding: 10px 20px 30px 40px;
        
        /* 外边距 */
        /* margin: 10px; */
        /* 上下10px   左右20px */
        margin: 10px 20px;
      }
      #d2{
        width: 686px;
        height: 300px;
        background-color: #5F9EA0;
        /* 居中 */
        margin: auto;
      }
    </style>
    
  </head>
  <body>
    <div id="d1">
      这是一个div
    </div>
    <div id="d2">
      这是一个div
    </div>    
  </body>
</html>

6 弹性布局


容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴/侧轴(cross axis)

常用属性

  • flex-direction
  • 决定主轴的方向
  • row(默认值):主轴为水平方向,起点在左端。

  • row-reverse:主轴为水平方向,起点在右端。
  • column:主轴为垂直方向,起点在上沿。
  • column-reverse:主轴为垂直方向,起点在下沿。
  • flex-wrap
  • 定义如果一条轴线排不下,如何换行。
  • nowrap :不换行
  • wrap : 换行,第一行在上方。
  • wrap-reverse:换行,第一行在下方。
  • flex-flow
  • flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap

justify-content

  • 定义主轴上的对齐方式
  • flex-start(默认值):左对齐
  • flex-end:右对齐
  • center: 居中
  • space-between:两端对齐,项目之间的间隔都相等。
  • space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
  • align-items
  • 定义交叉轴上如何对齐
  • flex-start:交叉轴的起点对齐。
  • flex-end:交叉轴的终点对齐。
  • center:交叉轴的中点对齐。
  • baseline: 项目的第一行文字的基线对齐。
  • stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
  • align-content
  • 定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style>
      .content{
        width: 60%;
        height: 600px;
        margin: 50px auto;
        background-color: cornflowerblue;
        
        /* 弹性布局 */
        display: flex;
        /* 弹性主轴方向,默认x轴 */
        flex-direction: row;
        /* 如果当元素超出边界自动换行 */
        flex-wrap: wrap;
        /* 主轴方向的对齐方式 */
        /* justify-content: center; */
      }
      .d1{
        width: 33%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        /* 侧轴方向的对齐方式 */
        align-items: center;
        
      }
      .d1 img{
        width: 120px;
        height: 120px;
      }
    </style>
  </head>
  <body>
    
    <div class="content">
      <div class="d1">
        <img src="../img/002.png">
        <span>xxx</span>
      </div>
      <div class="d1">
        <img src="../img/003.png">
        <span>xxx</span>
      </div>
      <div class="d1">
        <img src="../img/003.png">
        <span>xxx</span>
      </div>
      <div class="d1">
        <img src="../img/004.png">
        <span>xxx</span>
      </div>
      <div class="d1">
        <img src="../img/006.png">
        <span>xxx</span>
      </div>
      <div class="d1">
        <img src="../img/007.png">
        <span>xxx</span>
      </div>
      <div class="d1">
        <img src="../img/008.png">
        <span>xxx</span>
      </div>
      <div class="d1">
        <img src="../img/009.png">
        <span>xxx</span>
      </div>
      <div class="d1">
        <img src="../img/010.png">
        <span>xxx</span>
      </div>
      
    </div>
  </body>
</html>


目录
相关文章
|
12天前
|
前端开发 JavaScript C++
揭秘Web前端CSS引入秘籍:Link vs @import,你的选择决定页面加载速度,你选对了吗?
【8月更文挑战第26天】本文探讨了Web前端开发中CSS的引用方法,主要包括行内样式、内部样式表及外部样式表三种形式。重点对比了外部样式表中的`&lt;link&gt;`和`@import`两种引入方式。`&lt;link&gt;`作为HTML元素,在页面加载初期就开始加载样式资源,支持并行加载,对提高页面加载速度有益。而`@import`作为一种CSS规则,仅能在CSS文件中使用,其引入的样式表会在页面完成加载后才开始加载,可能导致渲染延迟且不支持并行加载。因此,在多数情况下,推荐采用`&lt;link&gt;`方式引入外部样式表,以确保更佳的性能表现和浏览器兼容性。
44 2
|
11天前
|
前端开发 JavaScript API
解锁高效应用构建:Vuex与后端交互的前端状态同步策略,让数据流动如行云流水,紧跟前端开发的热点趋势
【8月更文挑战第27天】本文深入探讨了Vue框架下的前端状态管理库Vuex与后端服务交互时的状态同步策略。通过剖析Vuex的核心机制——状态(State)、变异(Mutation)、动作(Action)及模块(Module),文章展示了如何优雅地将后端数据加载并更新至前端状态中。特别地,借助示例代码解释了Action处理API调用、Mutation更新状态的过程,并介绍了如何通过模块化和命名空间提高状态管理的准确性和时效性。此外,还讨论了组件如何利用`mapState`和`mapActions`简化状态访问与操作的方法。遵循这些策略,开发者可以在构建复杂应用时显著提升性能与用户体验。
24 0
|
12天前
|
编解码 前端开发 开发者
【前端设计达人必备】揭秘CSS尺寸单位的魔力:从基础到实战,打造灵动响应式网页!
【8月更文挑战第26天】本文深入探讨了CSS中常用的尺寸单位,包括像素(px)、百分比(%)、视窗单位(vw/vh/vmin/vmax)、可伸缩相对单位(em/rem)以及Flexbox和Grid中的fr单位。通过具体案例展示了每种单位的特点及其适用场景。像素适用于固定尺寸元素;百分比和em/rem利于构建响应式布局;视窗单位适合全屏设计;fr单位则能有效管理复杂网格布局的空间分配。掌握这些单位有助于开发者设计出更加灵活、高质量的网页布局。
32 4
|
12天前
|
前端开发 开发者
【前端大揭秘】CSS盒子模型的爱恨情仇:一场关于标准与IE模型的精彩对决!
【8月更文挑战第26天】本文深入探讨CSS中的两大盒子模型——标准盒模型与IE盒模型。通过理论解析与实例代码,清晰展示了两种模型下元素尺寸的构成方式及其应用场景。标准盒模型适合精确控制内容区尺寸,而IE盒模型在处理固定宽度元素时更为直观。掌握这些知识将帮助前端开发者在实际项目中做出更优的设计决策,提升网页布局的质量与美观性。
13 1
|
6天前
|
Java Spring 数据库
怎样动动手指就能实现数据操作?Spring Data JPA背后的魔法揭秘
【8月更文挑战第31天】在Java开发中,数据库交互至关重要。传统的JDBC操作繁琐且难维护,而Spring Data JPA作为集成JPA的数据访问层解决方案,提供了CRUD等通用操作接口,显著减少代码量。通过继承`JpaRepository`,开发者能轻松实现数据的增删改查,甚至复杂查询和分页也不再困难。本文将通过示例详细介绍如何利用Spring Data JPA简化数据访问层的开发,提升代码质量和可维护性。
13 0
|
6天前
|
前端开发 Java Spring
Spring与Angular/React/Vue:当后端大佬遇上前端三杰,会擦出怎样的火花?一场技术的盛宴,你准备好了吗?
【8月更文挑战第31天】Spring框架与Angular、React、Vue等前端框架的集成是现代Web应用开发的核心。通过RESTful API、WebSocket及GraphQL等方式,Spring能与前端框架高效互动,提供快速且功能丰富的应用。RESTful API简单有效,适用于基本数据交互;WebSocket支持实时通信,适合聊天应用和数据监控;GraphQL则提供更精确的数据查询能力。开发者可根据需求选择合适的集成方式,提升用户体验和应用功能。
32 0
|
6天前
|
前端开发 Java JSON
Struts 2携手AngularJS与React:探索企业级后端与现代前端框架的完美融合之道
【8月更文挑战第31天】随着Web应用复杂性的提升,前端技术日新月异。AngularJS和React作为主流前端框架,凭借强大的数据绑定和组件化能力,显著提升了开发动态及交互式Web应用的效率。同时,Struts 2 以其出色的性能和丰富的功能,成为众多Java开发者构建企业级应用的首选后端框架。本文探讨了如何将 Struts 2 与 AngularJS 和 React 整合,以充分发挥前后端各自优势,构建更强大、灵活的 Web 应用。
15 0
|
6天前
|
前端开发 开发者 UED
数据校验的艺术:揭秘JSF如何将前端与后端验证合二为一,打造无缝用户体验
【8月更文挑战第31天】JavaServer Faces(JSF)是构建企业级Web应用的Java规范,提供了丰富的组件和API,便于快速搭建用户界面。JSF验证框架基于JavaBean验证API(JSR 303/JSR 380),利用注解如`@NotNull`、`@Size`等在模型类上定义验证规则,结合前端的`&lt;h:inputText&gt;`和`&lt;h:message&gt;`标签展示错误信息。
13 0
|
6天前
|
前端开发 大数据 数据库
🔥大数据洪流下的决战:JSF 表格组件如何做到毫秒级响应?揭秘背后的性能魔法!💪
【8月更文挑战第31天】在 Web 应用中,表格组件常用于展示和操作数据,但在大数据量下性能会成瓶颈。本文介绍在 JavaServer Faces(JSF)中优化表格组件的方法,包括数据处理、分页及懒加载等技术。通过后端分页或懒加载按需加载数据,减少不必要的数据加载和优化数据库查询,并利用缓存机制减少数据库访问次数,从而提高表格组件的响应速度和整体性能。掌握这些最佳实践对开发高性能 JSF 应用至关重要。
19 0
|
6天前
|
前端开发 开发者 Apache
揭秘Apache Wicket项目结构:如何打造Web应用的钢铁长城,告别混乱代码!
【8月更文挑战第31天】Apache Wicket凭借其组件化设计深受Java Web开发者青睐。本文详细解析了Wicket项目结构,帮助你构建可维护的大型Web应用。通过示例展示了如何使用Maven管理依赖,并组织页面、组件及业务逻辑,确保代码清晰易懂。Wicket提供的页面继承、组件重用等功能进一步增强了项目的可维护性和扩展性。掌握这些技巧,能够显著提升开发效率,构建更稳定的Web应用。
25 0

热门文章

最新文章

下一篇
DDNS