パネルコントロールで改行しないようにしたい

パネルコントロールで改行しないようにするコードを紹介します。

概要

パネルコントロールを配置した場合、デフォルトの設定ではパネルが改行される表示になります。 この記事ではパネルの改行をしないようにするコードを紹介します。

方針

CSSのdisplayスタイルをinline-blockに変更して改行しない動作にします。inline-blockの詳細についてはこちらの記事を参照してください。

デフォルトの動作

デフォルトの動作を確認します。ASP.NET アプリケーションを作成し、下記のWebフォームを実装します。

SimplePanel.css
.StandardPanel {
  width:240px;
  height:64px;
  border:1px #ff6a00 solid;
}

SimplePanel.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SimplePanel.aspx.cs" Inherits="PanelDemo.SimplePanel" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <link rel="stylesheet" href="SimplePanel.css" />
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:Panel CssClass="StandardPanel" ID="Panel1" runat="server">パネル1</asp:Panel>
            <asp:Panel CssClass="StandardPanel" ID="Panel2" runat="server">パネル2</asp:Panel>
            <asp:Panel CssClass="StandardPanel" ID="Panel3" runat="server">パネル3</asp:Panel>
        </div>
    </form>
</body>
</html>

表示結果

プロジェクトを実行し、上記のWebフォームのページをWebブラウザで表示します。下図のページが表示されます。Panelごとに改行され、Panelコントロールが縦にならんで 表示されてることが確認できます。

パネルコントロールで改行しないようにしたい:画像1

プログラム : Panelの改行をしない動作

displayプロパティに inline-block を設定し、Panelの改行をしない動作にするコードを紹介します。

以下のコードを記述します。

SimplePanel.css
.NoWrapPanel {
  width: 240px;
  height: 64px;
  border: 1px #ff6a00 solid;
  display:inline-block;
}

SimplePanelNowrap.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SimplePanelNowrap.aspx.cs" Inherits="PanelDemo.SimplePanelNowrap" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <link rel="stylesheet" href="SimplePanel.css" />
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:Panel CssClass="NoWrapPanel" ID="Panel1" runat="server">パネル1</asp:Panel>
            <asp:Panel CssClass="NoWrapPanel" ID="Panel2" runat="server">パネル2</asp:Panel>
            <asp:Panel CssClass="NoWrapPanel" ID="Panel3" runat="server">パネル3</asp:Panel>
        </div>
    </form>
</body>
</html>

表示結果

プロジェクトを実行し、上記のWebフォームを表示します。下図のページが表示されます。Panelコントロールごとの改行が無くなり、Panelコントロールが横並びで 表示されることが確認できます。
パネルコントロールで改行しないようにしたい:画像2

参考 : displayプロパティをinlineに設定した場合の表示

参考として、display プロパティを inline に設定した場合の表示です。

SimplePanel.css
.InlinePanel {
  width: 240px;
  height: 64px;
  border: 1px #ff6a00 solid;
  display: inline;
}

SimplePanelInline.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SimplePanelInline.aspx.cs" Inherits="PanelDemo.SimplePanelInline" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <link rel="stylesheet" href="SimplePanel.css" />
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Panel CssClass="InlinePanel" ID="Panel1" runat="server">パネル1</asp:Panel>
        <asp:Panel CssClass="InlinePanel" ID="Panel2" runat="server">パネル2</asp:Panel>
        <asp:Panel CssClass="InlinePanel" ID="Panel3" runat="server">パネル3</asp:Panel>
    </div>
    </form>
</body>
</html>

表示結果

上記のWebフォームのページをWebブラウザで表示します。下図のページが表示されます。 inline要素としての表示になるため、width, height プロパティが無視されることが確認できます。
パネルコントロールで改行しないようにしたい:画像3


AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2020-10-19
Copyright © 1995–2025 iPentec all rights reserverd.