TabPanel
TabPanel
スタイル設定と CSS
このビューは、TabPanel コントロールの外観をカスタマイズする方法を示します。
機能
サンプル
設定
説明
CSS を使用して TabPanel の外観をカスタマイズできます。
TabPanel コントロールのレイアウトはシンプルなので、CSS を使用して簡単にスタイルを設定できます。 たとえば、タブはデフォルトでコンテンツの上に表示されますが、CSS を使用してその位置を変更し、 コンテンツの下に表示したり、左または右に縦に並べて表示することができます。
この例では Tab の外観を変更して、タブの配置や、タブを切り替えるときにアニメーションを使用するかどうかを選択できるようにします。
ソース
StylingController.cs
using MvcExplorer.Models;
using Microsoft.AspNetCore.Mvc;
using System.Linq;
using System.Collections.Generic;
using Microsoft.AspNetCore.Http;
namespace MvcExplorer.Controllers
{
public partial class TabPanelController : Controller
{
// GET: Styling
public ActionResult Styling(IFormCollection collection)
{
var settings = new ClientSettingsModel("tabCss")
{
Settings = CreateStylingSettings(),
DefaultValues = GetStylingDefaultValues()
};
ViewBag.DemoSettingsModel = settings;
return View();
}
private static IDictionary<string, object[]> CreateStylingSettings()
{
var settings = new Dictionary<string, object[]>
{
{"TabAlignment", new object[]{"Left", "Center", "Right"}},
{"IsAnimated", new object[]{ false, true} },
{"CustomHeaders", new object[]{ false, true} },
{"TabPosition", new object[]{ "Above", "Left", "Right", "Below" } }
};
return settings;
}
private static IDictionary<string, object> GetStylingDefaultValues()
{
var defaultValues = new Dictionary<string, object>
{
{"IsAnimated",true}
};
return defaultValues;
}
}
}
Styling.cshtml
@{
ClientSettingsModel demoSettingModel = ViewBag.DemoSettingsModel;
ViewBag.DemoSettings = true;
}
@section Styles{
<style>
/* custom-headers */
.wj-tabpanel.custom-headers .wj-tabpanes {
border-top: none;
}
.wj-tabpanel.custom-headers .wj-tabheaders {
background: black;
color: white;
}
.wj-tabpanel.custom-headers .wj-tabheaders .wj-tabheader.wj-state-active {
background: white;
color: black;
}
.wj-tabpanel.custom-headers .wj-tabheaders .wj-tabheader:not(.wj-state-active) {
font-weight: normal;
}
.wj-tabpanel.custom-headers .wj-tabheaders .wj-tabheader.wj-state-active:after { /* hide underline */
display: none;
}
/* tabs on the left */
.wj-tabpanel.tabs-left > div {
display: flex;
align-items: center;
}
.wj-tabpanel.tabs-left .wj-tabheaders {
display: flex;
flex-direction: column;
min-width: 8em;
border-right: 1px solid #ddd;
}
.wj-tabpanel.tabs-left .wj-tabheaders .wj-tabheader {
text-align: right;
}
.wj-tabpanel.tabs-left .wj-tabpanes {
display: flex;
flex-grow: 1;
border-top: none;
overflow-x: hidden;
}
/* tabs on the right */
.wj-tabpanel.tabs-right > div {
display: flex;
align-items: center;
}
.wj-tabpanel.tabs-right .wj-tabheaders {
display: flex;
flex-direction: column;
min-width: 8em;
border-left: 1px solid #ddd;
order: 1;
}
.wj-tabpanel.tabs-right .wj-tabheaders .wj-tabheader {
text-align: left;
}
.wj-tabpanel.tabs-right .wj-tabpanes {
display: flex;
flex-grow: 1;
border-top: none;
overflow-x: hidden;
order: 0;
}
/* tabs below */
.wj-tabpanel.tabs-below > div {
display: flex;
flex-direction: column;
align-items: stretch;
}
.wj-tabpanel.tabs-below .wj-tabheaders {
order: 1; /* headers after panes */
}
.wj-tabpanel.tabs-below .wj-tabpanes {
order: 0;
}
.wj-tabpanel.tabs-below .wj-tabheaders .wj-tabheader.wj-state-active:after {
top: 0;
bottom: unset;
}
</style>
}
<script>
var directions = ['Left', 'Right', 'Above', 'Below'];
function customChangeTabAlignment(control, value) {
control.hostElement.querySelector('.wj-tabheaders').style.textAlign = value;
}
function customChangeCustomHeaders(control, value) {
wijmo.toggleClass(control.hostElement, 'custom-headers', value);
}
function customChangeTabPosition(control, value) {
directions.forEach(function (d, i) {
var clsName = 'tabs-' + d.toLowerCase();
wijmo.toggleClass(control.hostElement, clsName, d == value);
})
}
</script>
<c1-tab-panel id="@demoSettingModel.ControlId" class="custom-tab">
<div>
<a>Africa</a>
<div>
<ul>
<li>Algeria</li>
<li>Angola</li>
<li>Benin</li>
<li>Botswana</li>
</ul>
</div>
</div>
<div>
<a>America</a>
<div>
<ul>
<li>Canada</li>
<li>Chile</li>
<li>Mexico</li>
<li>United States</li>
</ul>
</div>
</div>
<div>
<a>Asia</a>
<div>
<ul>
<li>China</li>
<li>Korea</li>
<li>India</li>
<li>Japan</li>
</ul>
</div>
</div>
<div>
<a>Europe</a>
<div>
<ul>
<li>Austria</li>
<li>England</li>
<li>France</li>
<li>Germany</li>
<li>Netherlands</li>
<li>Switzerland</li>
</ul>
</div>
</div>
<div>
<a>Oceania</a>
<div>
<ul>
<li>Australia</li>
<li>Fiji</li>
<li>New Zealand</li>
<li>Samoa</li>
</ul>
</div>
</div>
</c1-tab-panel>
@section Summary{
<p>@Html.Raw(TabPanelRes.Styling_Text0)</p>
}
@section Description{
<p>@Html.Raw(TabPanelRes.Styling_Text1)</p>
<p>@Html.Raw(TabPanelRes.Styling_Text2)</p>
<p>@Html.Raw(TabPanelRes.Styling_Text3)</p>
}
マニュアル