This commit is contained in:
ken 2026-09-24 16:54:28 +08:00
parent 7470d2ad88
commit bf89ea43e5
26 changed files with 466 additions and 102 deletions

View File

@ -515,20 +515,28 @@
});
//播放驗證碼語音
$(function () {
$('.ask-question')
.find('.controls button.fas.fa-volume-up')
.each(function () {
const $btn = $(this);
var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
var isEn = pageLang.startsWith('en');
var label = isEn ? 'Play Captcha Voice' : '播放驗證碼語音';
// 已經補過就不重複處理
if ($btn.attr('aria-label')) return;
$('.ask-question')
.find('.controls button.fas.fa-volume-up')
.each(function () {
var $btn = $(this);
$btn.attr({
'aria-label': '播放驗證碼語音',
'aria-controls': 'captcha_audio',
'role': 'button'
});
});
$btn.attr({
'aria-label': label,
'title': label,
'aria-controls': 'captcha_audio',
'role': 'button'
});
// ✅ 同步更新 sr-only 文字(若有)
var $sr = $btn.find('.sr-only');
if ($sr.length > 0) {
$sr.text(label);
}
});
});
//刪除td的id
@ -899,7 +907,7 @@
var isLinkImage = $parentA.length > 0 && $parentA.text().replace(/\u00a0/g, '').trim() === "";
// --- 1. 處理「裝飾性圖片」標註 ---
if (currentAlt === "announcement image" || currentAlt === "裝飾圖片" || currentTitle === "裝飾圖片" || currentAlt === "這是一張圖片" || currentTitle === "這是一張圖片") {
if (currentAlt === "announcement image" || currentAlt === "裝飾圖片" || currentTitle === "裝飾圖片" || currentAlt === "這是一張圖片" || currentTitle === "這是一張圖片"||currentAlt === "This is a image" ||currentTitle === "This is a image"){
$img.attr('alt', '');
$img.removeAttr('title');
return;
@ -2117,29 +2125,71 @@ $(document).ready(function () {
});
$(document).ready(function () {
$('.rucaptcha-image').removeAttr('onload');
// 檢查是否已插入過
if (!$('#captcha_audio').length) {
const audioButton = $(`
<button
title="播放驗證碼語音"
type="button"
onclick="document.getElementById('captcha_audio').play();"
class="fas fa-volume-up"
aria-label="播放驗證碼語音"
role="button"
style="font-size: 1.5em; color: #333; cursor: pointer; border: 2px solid #333; padding: 0.2em;">
<span class="sr-only">播放驗證碼語音</span>
</button>
`);
const audio = $('<audio id="captcha_audio" src="/rucaptcha/?format=wav&amp;locale=zh_tw"></audio>');
$('.rucaptcha-image').after(audioButton, audio);
}
});
//rucaptcha-image
$(document).ready(function () {
function fixCaptchaImgA11y() {
setTimeout(function () {
// ✅ 先確認頁面上真的有驗證碼圖片,再往下執行
if (!$('.rucaptcha-image').length) return;
var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
var isEn = pageLang.startsWith('en');
var i18n = {
alt: isEn ? 'Captcha image, click to refresh' : '驗證碼圖片,點擊可更換',
title: isEn ? 'Captcha image, click to refresh' : '驗證碼圖片,點擊可更換',
label: isEn ? 'Click to refresh captcha' : '點擊更換驗證碼',
audioBtn: isEn ? 'Play captcha audio' : '播放驗證碼語音',
audioSrc: isEn ? '/rucaptcha/?format=wav&locale=en' : '/rucaptcha/?format=wav&locale=zh_tw'
};
var $captchaImg = $('.rucaptcha-image');
// ✅ 移除 onload
$captchaImg.removeAttr('onload');
// ✅ 補上有意義的 alt、role、tabindex、title
$captchaImg.attr({
'alt': i18n.alt,
'title': i18n.title,
'role': 'button',
'tabindex': '0',
'aria-label': i18n.label
});
// ✅ Enter / Space 觸發更換驗證碼
$captchaImg.off('keydown.captchaA11y').on('keydown.captchaA11y', function (e) {
if (e.which === 13 || e.which === 32) {
e.preventDefault();
$(this).trigger('click');
}
});
// ✅ 插入語音按鈕和 audio(若還沒插入過)
if (!$('#captcha_audio').length) {
var $audioButton = $(
'<button ' +
'title="' + i18n.audioBtn + '" ' +
'type="button" ' +
'onclick="document.getElementById(\'captcha_audio\').play();" ' +
'class="fas fa-volume-up" ' +
'aria-label="' + i18n.audioBtn + '" ' +
'role="button" ' +
'style="font-size: 1.5em; color: #333; cursor: pointer; border: 2px solid #333; padding: 0.2em;">' +
'<span class="sr-only">' + i18n.audioBtn + '</span>' +
'</button>'
);
var $audio = $('<audio id="captcha_audio" src="' + i18n.audioSrc + '"></audio>');
$captchaImg.after($audioButton, $audio);
}
}, 500);
}
fixCaptchaImgA11y();
});
//萬用表格searchbtn2
$(document).ready(function () {
@ -2969,11 +3019,15 @@ $(document).ready(function () {
});
//post
$(document).ready(function () {
setTimeout(function () {
$('iframe.twitter-share-button, iframe.twitter-tweet-button').each(function () {
$(this).attr('title', '分享至 X 在新視窗開啟');
});
}, 1500);
setTimeout(function () {
var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
var isEn = pageLang.startsWith('en');
var title = isEn ? 'Share to X Open in new window' : '分享至 X 在新視窗開啟';
$('iframe.twitter-share-button, iframe.twitter-tweet-button').each(function () {
$(this).attr('title', title);
});
}, 1500);
});
$(function() {
function bindIframeFocus() {
@ -3220,11 +3274,290 @@ setTimeout(function() {
}
});
}, 1000);
// 執行 member等高計算,目前改用flexbox故mark掉 by ika 20160105
// $(window).load(function() {
// if ($('.index-member-3').length && $(window).width() > 992) {
// ORBITFRONT.member.equalHeight('.i-member-item-inner');
// }
// });
//會員tab邏輯
$(document).ready(function () {
setTimeout(function () {
$('.dtr-control').removeAttr('tabindex');
}, 500);
});
function fixTabKeyboardNav() {
setTimeout(function () {
var $tablist = $('.member-plugins[role="tablist"]');
var $tabs = $tablist.find('a[role="tab"]');
// 初始化 roving tabindex 和 aria-selected
$tabs.each(function (i) {
var $tab = $(this);
var isActive = $tab.closest('li').hasClass('active');
$tab.attr({
'tabindex': isActive ? '0' : '-1',
'aria-selected': isActive ? 'true' : 'false'
});
});
// 方向鍵切換頁籤
$tabs.on('keydown', function (e) {
var $current = $(this);
var currentIndex = $tabs.index($current);
var $target;
if (e.keyCode === 39 || e.keyCode === 40) {
// 右鍵或下鍵:下一個
e.preventDefault();
$target = $tabs.eq((currentIndex + 1) % $tabs.length);
} else if (e.keyCode === 37 || e.keyCode === 38) {
// 左鍵或上鍵:上一個
e.preventDefault();
$target = $tabs.eq((currentIndex - 1 + $tabs.length) % $tabs.length);
} else if (e.keyCode === 36) {
// Home:第一個
e.preventDefault();
$target = $tabs.first();
} else if (e.keyCode === 35) {
// End:最後一個
e.preventDefault();
$target = $tabs.last();
} else {
return;
}
// 更新 roving tabindex 和 aria-selected
$tabs.attr({ 'tabindex': '-1', 'aria-selected': 'false' });
$target.attr({ 'tabindex': '0', 'aria-selected': 'true' });
$target.focus().trigger('click');
});
// 點擊頁籤時同步更新狀態
$tabs.on('click', function () {
$tabs.attr({ 'tabindex': '-1', 'aria-selected': 'false' });
$(this).attr({ 'tabindex': '0', 'aria-selected': 'true' });
});
}, 500);
}
$(document).ready(function () {
fixTabKeyboardNav();
});
function removeBareUrlLinks() {
setTimeout(function() {
$('.dataTables_wrapper a').each(function() {
var $a = $(this);
var text = $a.text().trim();
if (/^https?:\/\//i.test(text)) {
$a.replaceWith(text);
}
});
}, 500);
}
$(document).ready(function() {
removeBareUrlLinks();
});
//麵包屑無障礙
$(document).ready(function () {
var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
var isEn = pageLang.startsWith('en');
var navLabel = isEn ? 'Breadcrumb navigation' : '麵包屑導覽';
$('.widget-breadcrumb .breadcrumb li:last-child a').attr('aria-current', 'page');
$('.widget-breadcrumb .breadcrumb').each(function () {
if (!$(this).closest('nav').length) {
$(this).wrap('<nav aria-label="' + navLabel + '"></nav>');
}
});
});
//gallery view
function fixGalleryViewLinkA11y() {
$('a.btn.view').each(function () {
var $a = $(this);
$a.find('span').each(function () {
var $span = $(this);
// 避免重複處理
if ($span.hasClass('sr-only')) return;
var style = $span.attr('style') || '';
if (style.indexOf('display: none') !== -1 || style.indexOf('display:none') !== -1) {
$span.removeAttr('style').addClass('sr-only');
}
});
$a.find('i, svg').attr('aria-hidden', 'true');
});
}
$(document).ready(function () {
// 比 fixAccessibilityAll 的 800ms 晚,確保最後執行
setTimeout(fixGalleryViewLinkA11y, 2000);
});
//會員
$(function() {
function fixMemberAcademicLinkA11y() {
setTimeout(function() {
$('.i-member-item').each(function() {
var $item = $(this);
// ✅ 取得該成員的姓名
var memberName = $item.find('.member-data-value-name a').text().trim();
if (!memberName) return;
// ✅ 找到學術歷程連結,補上包含姓名的 title
$item.find('.member-data-value-11 a').each(function() {
var $a = $(this);
var currentTitle = $a.attr('title') || '';
// ✅ 移除舊的開窗字串,組合新 title
var titleWithoutWindow = currentTitle
.replace('另開新視窗前往', '')
.replace('在新視窗開啟', '')
.replace('在本視窗開啟', '')
.trim();
var isNewWindow = $a.attr('target') === '_blank';
var windowText = isNewWindow ? ' 在新視窗開啟' : ' 在本視窗開啟';
$a.attr('title', memberName + ' ' + titleWithoutWindow + windowText);
});
});
}, 500);
}
fixMemberAcademicLinkA11y();
});
//banner英文
$(function() {
function fixBannerA11yByLang() {
setTimeout(function() {
var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
var isEn = pageLang.startsWith('en');
var i18n = {
playControls: isEn ? 'Playback Controls' : '播放控制選項',
resume: isEn ? 'Play' : '繼續播放',
pause: isEn ? 'Pause' : '暫停播放',
prev: isEn ? 'Previous' : '上一張',
next: isEn ? 'Next' : '下一張',
slide: isEn ? 'Slide' : '第',
slideUnit: isEn ? '' : ' 張投影片'
};
$('.w-ba-banner').each(function() {
var $banner = $(this);
// ✅ 播放控制選項 radiogroup label
$banner.find('.controlplay').attr('aria-label', i18n.playControls);
// ✅ 繼續播放按鈕
$banner.find('.resume-slide').attr({
'aria-label': i18n.resume,
'title': i18n.resume
});
$banner.find('.resume-slide p').text(i18n.resume);
// ✅ 暫停播放按鈕
$banner.find('.pause-slide').attr({
'aria-label': i18n.pause,
'title': i18n.pause
});
$banner.find('.pause-slide p').text(i18n.pause);
// ✅ 上一張按鈕
$banner.find('.prev-button').attr('aria-label', i18n.prev);
// ✅ 下一張按鈕
$banner.find('.next-button').attr('aria-label', i18n.next);
// ✅ Pager 按鈕
var $slides = $banner.find('.w-ba-banner__slide');
$banner.find('.banner-pager button').each(function(index) {
var slideTitle = $slides.eq(index).data('cycle-title') || '';
var ariaLabel = isEn
? i18n.slide + ' ' + (index + 1) + (slideTitle ? ' ' + slideTitle : '')
: i18n.slide + (index + 1) + i18n.slideUnit + (slideTitle ? ' ' + slideTitle : '');
$(this).attr({
'aria-label': ariaLabel,
'title': ariaLabel
});
});
});
// ✅ Cycle2 初始化後也重新處理 Pager(因為 pager 是動態產生的)
$('.w-ba-banner .cycle-slideshow').on('cycle-post-initialize cycle-after', function() {
var $banner = $(this).closest('.w-ba-banner');
var $slides = $banner.find('.w-ba-banner__slide');
$banner.find('.banner-pager button').each(function(index) {
var slideTitle = $slides.eq(index).data('cycle-title') || '';
var ariaLabel = isEn
? i18n.slide + ' ' + (index + 1) + (slideTitle ? ' ' + slideTitle : '')
: i18n.slide + (index + 1) + i18n.slideUnit + (slideTitle ? ' ' + slideTitle : '');
$(this).attr({
'aria-label': ariaLabel,
'title': ariaLabel
});
});
});
}, 800);
}
fixBannerA11yByLang();
});
//bannercontrolplay
$(function() {
function fixBannerPlayPauseA11y() {
setTimeout(function() {
var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
var isEn = pageLang.startsWith('en');
var i18n = {
resume: isEn ? 'Play' : '繼續播放',
pause: isEn ? 'Pause' : '暫停播放'
};
$('.w-ba-banner').each(function() {
var $banner = $(this);
var $controlplay = $banner.find('.controlplay');
// ✅ 把 radiogroup 改為一般容器
$controlplay.removeAttr('role aria-label');
// ✅ 繼續播放按鈕
var $resume = $banner.find('.resume-slide');
$resume
.attr('role', 'button')
.attr('aria-pressed', $resume.hasClass('active') ? 'true' : 'false')
.attr('aria-label', i18n.resume)
.attr('title', i18n.resume)
.removeAttr('aria-checked aria-live');
// ✅ 暫停播放按鈕
var $pause = $banner.find('.pause-slide');
$pause
.attr('role', 'button')
.attr('aria-pressed', $pause.hasClass('active') ? 'true' : 'false')
.attr('aria-label', i18n.pause)
.attr('title', i18n.pause)
.removeAttr('aria-checked aria-live');
// ✅ 點擊後同步 aria-pressed
$resume.off('click.bannerA11y').on('click.bannerA11y', function() {
$resume.attr('aria-pressed', 'true');
$pause.attr('aria-pressed', 'false');
});
$pause.off('click.bannerA11y').on('click.bannerA11y', function() {
$pause.attr('aria-pressed', 'true');
$resume.attr('aria-pressed', 'false');
});
});
}, 800);
}
fixBannerPlayPauseA11y();
});
}(jQuery, window));

View File

@ -6,6 +6,11 @@
.fa-classic, .fa-regular, .fa-solid, .far, .fas ,.fa{
font-family: "FontAwesome";
}
li#language-li {
@media(max-width:767px){
display: none !important;
}
}
#orbit-bar .orbit-bar-inner > label:focus, #orbit-bar .orbit-bar-inner > label.focus{
.orbit-bar-search-sign-language{
display: block
@ -210,6 +215,6 @@ img{
// overflow-x: auto;
// }
// }
*[data-pp]>.editmode-ps>a, .admin-subpart-area .content>.editmode-ps>a{
position: !important;
}
input[type=checkbox]:focus {
outline: 0.3125em auto -webkit-focus-ring-color;
}

View File

@ -7812,7 +7812,7 @@ display: block;
color: #fff;
padding: 8px 30px 8px 20px;
border-radius: 2px;
background: #3DA7B9;
background: #05768a;
margin: 0 5px 10px;
font-size: 15px;
}

View File

@ -35,6 +35,7 @@ ul.button-mid{
width: 100%;
height: 0;
top: 50%;
z-index: 201;
}
.banner-pager .active-slide button{
background: $theme-color-second!important;
@ -44,6 +45,7 @@ ul.button-mid{
width: 100%;
height: 0;
top: 50%;
z-index: 201;
}
.next-button, .prev-button {
cursor: pointer;

View File

@ -113,7 +113,7 @@ a.w-annc__more.btn.btn-primary.pull-right {
.w-annc__category {
white-space: nowrap;
@extend .i-subtitle;
color: #007e94;
color: #1c5cb2;
}
.w-annc__status-wrap,
.w-annc__postdate-wrap,
@ -1998,7 +1998,7 @@ a.w-annc__more.btn.btn-primary.pull-right {
border-radius: 2px;
}
.w-annc__postdate{
color: #7198cc!important;
color: #1c5cb2!important;
}
.w-annc__widget-title{
color: #f2f2f2;

View File

@ -153,7 +153,7 @@
}
/* 2. 對應的檔案顏色 (轉為 iOS 半透明色調) */
.link { background-color: #1368d4 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.txt { background-color: #3a8a40 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.txt { background-color: #2a7e31 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.xlsx { background-color: #9e3050 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.pdf { background-color: #2a7d36 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.docx { background-color: #5e46a0 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
@ -162,7 +162,7 @@
.jpg { background-color: #8f3333 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.zip { background-color: #8a6400 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.rar { background-color: #9e5000 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.xls { background-color: #3a8a40 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.xls { background-color: #2a7e31 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.odt { background-color: #767676 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
// Archive index 1
.index-archive-1 {

View File

@ -492,7 +492,6 @@
.i-annc__list {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.i-annc__title {
font-family: $main-font;

View File

@ -29,9 +29,7 @@
</div>
</div>
<div class="w-ad-banner__pager-2 w-ba-banner__caption banner-pager banner_caption_{{subpart-id}}" data-list="images" data-level="0">
<li><button title="Slide {{slide_number}}" aria-label="Pager"><span style="display: none;">Slide {{slide_number}}</span></button></li>
</div>
<ul class="w-ba-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul>
<ul class="controlplay" role="radiogroup" aria-label="播放控制選項">
<a role="radio" aria-checked="true" href="javascript:;" class="resume-slide active" title="繼續播放" aria-label="繼續播放" aria-live="assertive">
<i aria-hidden="true"></i>
@ -49,20 +47,23 @@
</ul>
</div>
<script>
var flag = 1;
$('.pause-slide').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('pause');
});
$('.resume-slide').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('resume');
});
$('.next-button').off('click').on('click',function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("next");
$('[data-subpart-id="{{subpart-id}}"] .pause-slide').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('pause');
$(this).addClass('active')
$(this).parents('.controlplay').eq(0).find('.resume-slide').removeClass('active')
});
$('[data-subpart-id="{{subpart-id}}"] .resume-slide').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('resume');
$(this).addClass('active')
$(this).parents('.controlplay').eq(0).find('.pause-slide').removeClass('active')
});
$('[data-subpart-id="{{subpart-id}}"] .next-button').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("next");
})
$('.prev-button').off('click').on('click',function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("prev");
});
})
$('[data-subpart-id="{{subpart-id}}"] .prev-button').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("prev");
});
/* 修正點:處理 Pager 無障礙朗讀文字 */
$('.cycle-slideshow').on('cycle-post-initialize', function(event, optionHash) {
var $container = $(this).closest('.w-ba-banner');
@ -79,3 +80,23 @@
});
});
</script>
<style type="text/css">
.w-ba-banner .controlplay .resume-slide.active i{
color: #32D9C3;
}
.w-ba-banner .controlplay .pause-slide.active i{
color: #ff4500;
}
.w-ba-banner .controlplay{
width: auto;
}
.w-ba-banner .button-mid{
position: absolute;
width: 100%;
height: 0;
top: 50%;
}
.next-button,.prev-button{
cursor: pointer;
}
</style>

View File

@ -3,7 +3,7 @@
<ul class="i-annc__list row" data-level="0" data-list="announcements">
<li class="i-annc__item rotate0">
<div class="i-annc__img-wrap bullseye">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}">
<a href="{{link_to_show}}" title="{{img_description}}">
<img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</a>
</div>

View File

@ -2,9 +2,9 @@
<h3 class="i-annc__page-title"><span>{{page-title}}</span></h3>
<ul class="i-annc__list row" data-level="0" data-list="announcements">
<li class="i-annc__item col-md-3 col-sm-3">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}">
<a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__img-wrap bullseye">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}">
<img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="i-annc__content-wrap">
<div class="i-annc__meta">

View File

@ -2,10 +2,10 @@
<h3 class="i-annc__page-title"><span>{{page-title}}</span></h3>
<ul class="i-annc__list" data-level="0" data-list="announcements">
<li class="i-annc__item row">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}">
<a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__img-wrap col-sm-4">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}">
<img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="i-annc__content-wrap col-sm-8">

View File

@ -2,7 +2,7 @@
<h3 class="i-annc__page-title"><span>{{page-title}}</span></h3>
<ul class="i-annc__list" data-level="0" data-list="announcements">
<li class="i-annc__item row">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}">
<a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__content-wrap col-sm-8">
<div class="i-annc__meta">
<span class="i-annc__status-wrap" data-list="statuses" data-level="1">
@ -23,7 +23,7 @@
<p class="i-annc__subtitle">{{subtitle}}</p>
</div>
<div class="i-annc__img-wrap col-sm-4">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}">
<img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
</a>
</li>

View File

@ -48,12 +48,16 @@ if( window.location.href.indexOf('/en/') > -1 ) {
padding:1em;
}
}
.link{margin-right: 0.5em;}
.txt { background-color: #6dbb73; margin-right: 0.5em;}
.xlsx { background-color: #bb6d7f; margin-right: 0.5em;}
.pdf { background-color: #3b8347; margin-right: 0.5em;}
.docx { background-color: #846dbb; margin-right: 0.5em;}
.pptx { background-color: #6d77bb; margin-right: 0.5em;}
.jpg { background-color: #bb6d6d; margin-right: 0.5em;}
.zip { background-color: #dcb957; margin-right: 0.5em;}
.link { background-color: #1368d4 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.txt { background-color: #2a7e31 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.xlsx { background-color: #9e3050 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.pdf { background-color: #2a7d36 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.docx { background-color: #5e46a0 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.doc { background-color: #1368d4 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.pptx { background-color: #3d4aa0 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.jpg { background-color: #8f3333 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.zip { background-color: #8a6400 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.rar { background-color: #9e5000 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.xls { background-color: #2a7e31 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.odt { background-color: #767676 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
</style>

View File

@ -4,7 +4,7 @@
<li class="i-annc__item row">
<a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__img-wrap col-sm-4">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}">
<img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="i-annc__content-wrap col-sm-8">
<div class="i-annc__meta">

View File

@ -23,7 +23,7 @@
<p class="i-annc__subtitle">{{subtitle}}</p>
</div>
<div class="i-annc__img-wrap col-sm-4">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}">
<img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
</a>
</li>

View File

@ -4,7 +4,7 @@
<li class="i-annc__item col-md-4">
<a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__img-wrap bullseye" style="position:relative">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}">
<img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="i-annc__content-wrap">
<div class="i-annc__meta">

View File

@ -9,7 +9,7 @@
<div class="i-member-item-inner clearfix">
<div class="i-member-pic-wrap col-sm-3">
<a href="{{link_to_show}}" title="{{name}}">
<img class="i-member-pic img-thumbnail" src="{{image}}" title="{{name}}">
<img class="i-member-pic img-thumbnail" src="{{image}}" alt="{{name}}">
</a>
</div>
<div class="i-member-profile-data-wrap col-sm-9">

View File

@ -9,7 +9,7 @@
<div class="i-member-item-inner clearfix">
<div class="i-member-pic-wrap col-sm-4 col-xs-4">
<a href="{{link_to_show}}" title="{{name}}">
<img class="i-member-pic" src="{{image}}" title="{{name}}">
<img class="i-member-pic" src="{{image}}" alt="{{name}}">
</a>
</div>
<div class="i-member-profile-data-wrap col-sm-8 col-xs-8">

View File

@ -9,7 +9,7 @@
<div class="i-member-item-inner clearfix">
<div class="i-member-pic-wrap">
<a href="{{link_to_show}}" title="{{name}}">
<img class="i-member-pic" src="{{image}}" title="{{name}}">
<img class="i-member-pic" src="{{image}}" alt="{{name}}">
</a>
</div>
<div class="i-member-profile-data-wrap">

View File

@ -9,7 +9,7 @@
<div class="i-member-item-inner clearfix">
<div class="i-member-pic-wrap">
<a href="{{link_to_show}}" title="{{name}}">
<img class="i-member-pic" src="{{image}}" title="{{name}}">
<img class="i-member-pic" src="{{image}}" alt="{{name}}">
</a>
</div>
<div class="i-member-profile-data-wrap">

View File

@ -11,7 +11,7 @@
<div class="i-member-item-inner clearfix">
<div class="i-member-pic-wrap">
<a href="{{link_to_show}}" title="{{name}}">
<img class="i-member-pic" src="{{image}}" title="{{name}}">
<img class="i-member-pic" src="{{image}}" alt="{{name}}">
</a>
</div>

View File

@ -9,7 +9,7 @@
<div class="i-member-item-inner clearfix">
<div class="i-member-pic-wrap col-sm-12">
<a href="{{link_to_show}}" title="{{name}}">
<img class="i-member-pic img-thumbnail" src="{{image}}" title="{{name}}">
<img class="i-member-pic img-thumbnail" src="{{image}}" alt="{{name}}">
</a>
</div>
<div class="i-member-profile-data-wrap col-sm-12">

View File

@ -13,12 +13,11 @@
white-space: nowrap;
}
.universal-th-text{
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
white-space: normal;
}
white-space: pre !important;
}
.universal-dropdown-menu {
padding: 15px 18px;
white-space: nowrap;

View File

@ -9,11 +9,12 @@
<img src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="widget-content-title">
<a class="" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">{{title}}</a>
<span>{{title}}</span>
<span data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
</div>
</a>
</li>
</ul>
</div>

View File

@ -4,7 +4,7 @@
</h3>
<ul class="list-unstyled" data-list="web_link" data-level="0">
<li class="index-content">
<a class="index-content-title" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">
<a class="" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">
<div class="link-img-wrap{{display_image}}">
<img src="{{img_src}}" alt="{{img_description}}">
</div>

View File

@ -4,7 +4,7 @@
</h3>
<ul class="list-unstyled" data-list="web_link" data-level="0">
<li class="index-content col-md-4 col-sm-4">
<a class="index-content-title" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">
<a class="" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">
<div class="link-img-wrap{{display_image}}">
<img src="{{img_src}}" alt="{{img_description}}">
</div>