div内文字和控件垂直居中

本文介绍了一种使用CSS进行网页布局的方法,特别是如何使div内部元素在垂直方向上居中。通过设置padding-top和padding-bottom实现垂直居中效果,并分享了一个具体的案例。
    因为要动态生成页面所以就想用div来布局,因为对css不熟,弄了2个小时才搞明白(感觉还不如直接用Table)。其中最讨厌的就是Div内部的控件在垂直方向没法居中,其解决办法就是使用  padding-top与padding-bottom大小相等,并且padding-top + padding-buttom + height为实际Div高度。
<style type="text/css">
    .layout 
    
{    
        margin:0px auto;    //页面内居中
        width: 1024px;    
        font
-size: 10pt;
    }

    .half 
    
{    
        
float: left;             //为了让两个div并列放置
        width: 
49%;        //如果是50%两个div就没法并列放在一行上,不知道有没有更好的解决方法
    }

    .single
    
{
        width: 
98%;
    }

    .left 
    
{    
        background
-color: #E8F5FE;
        border: 1px solid #A9C9E2;            
        
float: left;  
        height: 30px;      
        width: 175px;        
        text
-align: right;        
        padding
-right: 10px;  
        line
-height: 30px;        //与height大小相等,用于文字垂直居中
    }

    .right
    
{
        background
-color: #E8F5FE;
        border: 1px solid #A9C9E2;            
        padding
-left: 10px;
        background
-color:White ;     
        height: 24px;               //没有width属性,自适应宽度
        padding
-top: 3px;        
        padding
-bottom: 3px;
        line
-height: 24px;
    }
使用代码:
<form id="form1" runat="server">
    
<div class="layout">
        
<div class="half">    
        
<div class="left"><asp:Label ID="Label1" runat="server" Text="左边" Height="20px"></asp:Label></div>
        
<div class="right"></div>
        
</div>
        
<div class="half"> 
        
<div class="left"><asp:Label ID="Label2" runat="server" Text="右边"></asp:Label></div>
        
<div class="right"></div>
        
</div>
        
<div class="layout">
        
<div class="single"><div class="left">左边</div><div class="right"><asp:TextBox ID="TextBox3" 
                        runat
="server" Width="300px" ></asp:TextBox></div></div>
        
</div>
        
<div class="layout">
        
<div class="half"><div class="left">
            
</div><div class="right"></div></div>
        
<div class="half"><div class="right">代码含义</div></div>
        
</div>
    
</div>
    
</form>
在网页或应用程序界面中实现文字垂直居中的方法,取决于所使用的开发平台技术栈。以下分别介绍在Web前端(HTML/CSS)Android应用开发中实现文字垂直居中的常见方式。 ### 在网页中实现文字垂直居中的方法 #### 使用 Flexbox 布局 Flexbox 是现代网页布局中最常用的方式之一,适用于容器内元素的垂直水平居中。 ```css .container { display: flex; align-items: center; /* 垂直居中 */ justify-content: center; /* 水平居中 */ height: 100px; /* 容器高度 */ } ``` ```html <div class="container"> <span>垂直居中文字</span> </div> ``` 这种方式适用于大多数现代浏览器,且代码简洁易维护[^1]。 #### 使用 CSS 表格单元格对齐 通过将容器设为表格单元格(`display: table-cell`),可以使用 `vertical-align` 属性实现垂直居中。 ```css .container { display: table-cell; vertical-align: middle; text-align: center; height: 100px; width: 200px; } ``` ```html <div class="container"> 垂直居中文字 </div> ``` 该方法兼容性较好,适用于需要支持旧版浏览器的场景。 ### 在 Android 应用中实现文字垂直居中 #### 使用 LinearLayout 布局 在 Android 的线性布局中,可以通过设置 `gravity` 属性来实现文字垂直居中。 ```xml <TextView android:layout_width="match_parent" android:layout_height="100dp" android:gravity="center" android:text="垂直居中文字" /> ``` `android:gravity="center"` 会同时实现水平垂直居中。如果只需要垂直居中,可以使用 `android:gravity="center_vertical"`[^3]。 #### 使用 ConstraintLayout 布局 ConstraintLayout 提供了更灵活的布局方式,可以通过约束关系实现垂直居中。 ```xml <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="100dp"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="垂直居中文字" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> ``` 这种方式适用于复杂布局场景,能够更精细地控制组件的位置[^3]。 ### 在 WPF 中实现文字垂直居中 在 WPF 中,可以使用 `VerticalContentAlignment` 属性或 `TextBlock` 配合 `Grid` 布局实现垂直居中。 ```xml <TextBox VerticalContentAlignment="Center" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Text="垂直居中文字" /> ``` 此方法适用于需要在 WPF 控件中实现文本垂直居中的情况[^2]。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值