Как изменить цвет вкладки html

Это мой CSS-код вкладок. Цвет вкладки должен измениться, когда я нажимаю на вкладку .... Вопрос по поводу: javascript, jquery, css, jquery-ui.

Это мой CSS-код вкладок. Цвет вкладки должен измениться, когда я нажимаю на вкладку.

/* #tab1 */
    .custom #tabbuttons .tab1 a     { background: #F6F6F6; color: #1C94C4; } /* override UI Theme */
    .custom #tabbuttons .tab1   {background:#006699}
    .custom #tabbuttons .tab1  a:hover{background: #FDF5CE;color:#FF0000}


    .custom #tabpanels #tab1,
    .custom #tab1 .ui-layout-resizer-sliding ,
    .custom #tab1 .ui-layout-west ,     /* sidebar panes too - for when 'sliding' */
    .custom #tab1 .ui-layout-east   { background: #4794D8; } 
    .custom #tab1 .ui-layout-resizer-closed { border: 1px solid #4cbf52; }
    .custom #tab1 .toolbar ,
    .custom #tab1 .ui-widget-header { background: #CEE3F6; border: 0; }
    .custom #tab1 .ui-widget-footer { background: #CEE3F6; border: 0; }
    /*
    .custom #tab1 > .ui-layout-center ,
    .custom #tab1 .ui-layout-pane .ui-layout-pane { border: 2px solid #4cbf52; }
    .custom #tab1 .ui-widget-content    { border: 1px solid #16b81e; }
    */

    /* #tab2  */
    .custom #tabbuttons .tab2 a     { background: #F6F6F6; color: #1C94C4; } /* override UI Theme */
    .custom #tabbuttons .tab2  a:hover{background: #FDF5CE;color:#FF0000}



    .custom #tabpanels #tab2,
    .custom #tab2 .ui-layout-resizer-sliding ,
    .custom #tab2 .ui-layout-west ,     /* sidebar panes too - for when 'sliding' */
    .custom #tab2 .ui-layout-east   { background: #4794D8; } 
    .custom #tab2 .ui-layout-resizer-closed { border: 1px solid #4cbf52; }
    .custom #tab2 .toolbar ,
    .custom #tab2 .ui-widget-header { background: #CEE3F6; border: 0; } 
    .custom #tab2 .ui-widget-footer { background: #CEE3F6; border: 0; } 
    /*
    .custom #tab2 > .ui-layout-center ,
    .custom #tab2 .ui-layout-pane .ui-layout-pane { border: 2px solid #4cbf52; }
    .custom #tab2 .ui-widget-content    { border: 1px solid #16b81e; }
    */

Я пробовал следующие коды, чтобы изменить цвет, когда он выбран …

  .custom #tabbuttons .tab1  a:selected{background: #FDF5CE;color:#FF0000}

or

.custom #tabbuttons .tab1  a:active{background: #FDF5CE;color:#FF0000}

or

.custom #tabbuttons .tab1  a:clicked{background: #FDF5CE;color:#FF0000}

Но на меня никто не работает …

Также кодирование вкладок в Body ниже ….

<UL id="tabbuttons" class="hidden">
        <LI class="tab1"><A href="#tab1">Track Location</A></LI>
        <LI class="tab2"><A href="#tab2">Track Route</A></LI>
    </UL>

В чем проблема … Как изменить цвет вкладки … Помогите, пожалуйста ……

Организация контента страницы таким образом, чтобы было и красиво, и информативно очень нелегкое дело. Деление информации на разделы или вкладки очень кстати в этом деле. Это позволяет нам вместить больше информации в ограниченное пространство и предоставить структурированный способ доступа к ней.

Сегодня мы создадим вкладки с помощью jQuery, CSS3 и технологий AJAX.

Шаг 1 — XHTML

Как обычно, мы начинаем с разметки

<ul class="tabContainer">
<!-- Сгенерированные вкладки с помощью jQuery будут тут -->
</ul>
<div class="clear"></div>
<div id="tabContent">
<div id="contentHolder">
<!-- Вырванный с помощью AJAX контент будет тут -->
</div>
</div>

Если Вам кажется, что разметка очень простая, Вы абсолютно правы. У нас нет кода для вкладок, так как он будет динамически генерироваться с помощью jQuery. Таким образом добавление новых вкладок будет очень простым, так как Вам стоит лишь изменить немного кода в Javascript файле.

demo.html

<li>
<a href="#" class="tab green">Tab two
<span class="left"></span>
<span class="right"></span>
</a>
</li>

Такая вот будет разметка для каждой вкладки. Она состоит из элемента li, который находится внутри неупорядоченного списка .tabContainer выше, и содержит ссылку с двумя span. Они показывают левую и правую часть фона, тем самым позволяют нашим вкладкам растягиваться и показывать текстовые ярлыки.

Также обрати внимание на класс ссылки green — он определяет фон, цвет текста и состояние при наведении мышки.

Шаг 2 — CSS

После разметки давайте посмотрим на стили:

styles.css — часть 1

.tabContainer{
	/* The UL */
	float:right;
	padding-right:13px;
}

#contentHolder{
	background-color:#EEEEEE;
	border:2px solid #FFFFFF;
	height:300px;
	margin:20px;

	color:#444444;
	padding:15px;
}

#tabContent{
	background-color:#333;
	border:1px solid #444;
	margin-top:-15px;
	width:100%;
}

#tabContent, .tabContainer li a,#contentHolder{
	-webkit-box-shadow:0 0 2px black;
	-moz-box-shadow:0 0 2px black;
	box-shadow:0 0 2px black;
}

.tabContainer li{
	/* Все элементы LI выстрояться друг за другом */
	display:inline;
}

.tabContainer li a,.tabContainer li a:visited{
	/* Ссылки вкладок превращаются в красочные кнопки */

	float:left;
	font-size:18px;

	/* display:block позволяет расширить список применимых CSS правил, таких как отступы (paddings): */
	display:block;

	padding:7px 16px 1px;
	margin:4px 5px;
	height:29px;

	/* Позиционируем */
	position:relative;

	/* CSS3 текстовые тени */
	text-shadow:1px 1px 1px #CCCCCC;
}

Выше представлено несколько CSS3 правил, которые придают страницы красивый вид. В начале, свойство box-shadow, которое добавляет тени под вкладками (#tabContent div и #contentHolder).

Далее идет свойство text-shadow, которое отвечает за цветную тень (outer glow другими словами) вокруг вкладок.

styles.css — часть 2

#overLine{
	/* Линия над активной кнопкой. */
	position:absolute;

	height:1px;
	background-color:white;
	width:90px;

	float:left;
	left:1px;
	top:-5px;
	overflow:hidden;
}

#main{
	margin:0 auto;
	position:relative;
	width:700px;
}

ul .left{
	/* Левый span в ссылке */

	height:37px;
	left:0;
	position:absolute;
	top:0;
	width:10px;
}

ul .right{
	/* Правый span в ссылке */

	height:37px;
	right:0;
	position:absolute;
	top:0;
	width:10px;
}

/* Придаем стиль индивидуально для каждого цвета: */

ul a.green{	background:url(img/green_mid.png) repeat-x top center;	color:#24570f;}
ul a.green span.left{ background:url(img/green_left.png) no-repeat left top;}
ul a.green span.right{ background:url(img/green_right.png) no-repeat right top;}

/* .. Аналогично .. */

/* Состояние при наведении мышки: */
ul a:hover{	background-position:bottom center; text-decoration:none;}
ul a:hover span.left{ background-position:left bottom;}
ul a:hover span.right{ background-position:right bottom;}

.preloader{
	display:block;
	margin:120px auto;
}

Во второй части кода мы определяем фоновое изображение для ссылки + правый и левый span, в зависимости от цвета.

Шаг 3 — jQuery

Вот и пришло время магии. Первым делом в шапке документа подключаем библиотеку jQuery:

<link rel="stylesheet" type="text/css" href="styles.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>

Вначале мы подключили непосредственно саму библиотеку из репозитория Гугла, и следом подключили наш скрипт.

Вот подробное объяснение того, что будет делать jQuery:

При открытии страницы подгружается скрипт из репозитория гугла
— При полной загрузке страницы $(document).ready() функция, которая предоставлена в качестве параметра, выполняется
— Объект Tabs проходит несколько итераций (циклов) с помощью метода $.each() и несколько элементов LI создаются и прибавляются к .tabContainer <UL>
— Событие click настраивается и готово к использованию (при нажатии загружаются разные вкладки)

Давайте взглянем на код:

script.js — Часть 1

$(document).ready(function(){
	/* Код выполняется после загрузки страницы */

	/* Определяем массив с вкладками и соответствующими AJAX страницами: */

	var Tabs = {
		'Tab one'	: 'pages/page1.html',
		'Tab two'	: 'pages/page2.html',
		'Tab three'	: 'pages/page3.html',
		'Tab four'	: 'pages/page4.html'
	}

	/* Доступные цвета для вкладок: */
	var colors = ['blue','green','red','orange'];

 	/* Цвета линии над вкладками (активными): */
	var topLineColor = {
		blue:'lightblue',
		green:'lightgreen',
		red:'red',
		orange:'orange'
	}

	/* Цикл: */
	var z=0;
	$.each(Tabs,function(i,j){
		/* Sequentially creating the tabs and assigning a color from the array: */

		var tmp = $('<li><a href="#" class="tab '+colors[(z++%4)]+'">'+i+' <span class="left" /><span class="right" /></a></li>');

		/* Указываем информацию о странице по каждой ссылке: */

		tmp.find('a').data('page',j);

		/* Добавляем вкладку к контейнеру UL: */
		$('ul.tabContainer').append(tmp);
	})

Как Вы видите по коду выше можно легко добавлять новые вкладки. В массив выше достаточно добавить название вкладки и страницу с контентом.

Во второй части кода мы увидим в действии jQuery 1.4. Мы создадим новый элемент div (который выполняет роль черты над активной вкладкой) и передадим объект с ID и CCSS свойствами вместо определения их по отдельности с помощью методов .attr() и .css().

script.js — Часть 2

		/* Кэшируем вкладки в переменную для лучшей производительности: */
	var the_tabs = $('.tab');

	the_tabs.click(function(e){

		/* "this" указывает на нажатую ссылку вкладки: */
		var element = $(this);

 		/* Если активно, вернуть false и выйти: */
		if(ement.find('#overLine').length) return false;
&n 		/* Определяем цвет вкладки: */

		var bg = element.attr('class').replace('tab ','');

 		/* Убираем линию: */
		$('#overLine').remove();

 		/* Создаем новый элемент div с помощью jQuery 1.4 передавая дополнительный параметр объекта: */

		$('<div>',{			id:'overLine',
			css:{
				display:'none',
				width:element.outerWidth()-2,
				background:topLineColor[bg] || 'white'
			}}).appendTo(element).fadeIn('slow');
&n 		/* Проверяем была ли кэширована страница вырванная AJAX: */

		if(!ement.data('cache'))
		{
					/* Если кэша нет, показать gif анимацию загрузки и выполнить AJAX запрос: */
			$('#ntentHolder').html('<img src="img/ajax_preloader.gif" width="64" height="64" class="preloader" />');

 			$.get(element.data('page'),function(msg){
				$('#contentHolder').html(msg);
&n 				/* После получения страницы, добавить в кеш для текущей ссылки: */
				element.data('cache',msg);
			});		}
		else $('#contentHolder').html(element.data('cache'));

 		e.preventDefault();
	})

	/	/* Эмулируем нажатие на первую вкладку, чтобы область с контентом не была пустой: */
	the_tabs.eq(0).click();

});

Обратите внимание на использование метода data() по всему коду. Он присваивает информацию элементу вызывая метод с 2-мя параметрами $(‘#selector’).data(‘label’,”String Data”). Это присваивает строку “String Data” элементу и мы можем позже к ней обратиться (или проверить) вызывая метод без второго параметра.

Таким образом мы создали простую кэш систему для AJAX запросов. При первом AJAX запросе, текст ответа (который находится в переменной msg) сохраняется в data(‘cache’). При последующих запросах проверяется кэш на наличия информации. Если там уже есть текст, повторные запросы не нужны. Таким образом мы убираем лишнюю нагрузку на сервер и улучшаем время отклика вкладок.

Заключение

После этого урока мы с уверенностью можем говорить, что научились создавать вкладки, которые генерируются на лету с помощью Javascript. При этом содержание вкладок подгружается с помощью Ajax запросов. В добавок ко всему, содержание вкладок кэшируется и можно обращаться к нему множество раз без лишней нагрузки на сервер.

Очень интересный урок получился! Не правда ли?

15 / 0 / 2

Регистрация: 26.08.2016

Сообщений: 62

1

Изменение цвета вкладки

02.03.2017, 09:19. Показов 4006. Ответов 5


Как изменить цвет вкладки в меню?

Главная Новости Контакты и белый фон вниз. Стандартный их цвет серый, нажимаю на вкладку Новости и по переходу цвет меняется на белый, остальные как и были. И так постоянно, пока я не перейду на одну из других вкладок.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



112 / 108 / 42

Регистрация: 22.01.2017

Сообщений: 452

02.03.2017, 09:21

2

Покажите пациента.



0



BadPawn

15 / 0 / 2

Регистрация: 26.08.2016

Сообщений: 62

02.03.2017, 10:40

 [ТС]

3

Думал код не нужен.. )

index.html

HTML5
1
2
3
4
5
6
7
8
9
        <DIV ID=body_menu>
            <UL>
                <LI><A href="index.html">Главная</A></LI>
                <LI><A href="news.html">Новостная лента</A></LI>
                <LI><A href="#">Информация</A></LI>
                <LI><A href="#">Запись на приём к врачу</A></LI>
                <LI><A href="#">Контакты</A></LI>
            </UL>
        </DIV>

style_main.css

CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#body_menu {
    background-image: -webkit-linear-gradient(45deg,
                        rgba(0, 0, 0, 0) 48%,
                        rgba(255, 255, 255, 1) 20%,
                        rgba(0, 0, 0, 0) 52%
    );
    background-size: 0.4em 0.4em;
    background-color: #DCDCDC;
    margin: -46px 40px 40px 40px;
    text-align: left;
    border-left: 4px solid white;
    border-right: 4px solid white;
    border-bottom: 4px solid white;
    padding: 18px;
}
 
#body_menu a {
    text-decoration: none;
    padding: 1em;
    color: grey;
    font-size: 20px;
}
 
#body_menu a:hover {
    background: white;
    color: black;
}
 
#body_menu a. {
    background: white;
}
 
#body_menu ul {
    list-style: none;
    margin: 0;
    padding-left: 0;
}
 
#body_menu li {
    background: white;
}
#body_menu li {
    display: inline;
}



0



112 / 108 / 42

Регистрация: 22.01.2017

Сообщений: 452

02.03.2017, 10:53

4

Из вашего кода получается вот это, приведите весь код.

Миниатюры

Изменение цвета вкладки
 



0



Evgeniy55

107 / 101 / 35

Регистрация: 14.03.2014

Сообщений: 586

02.03.2017, 13:30

5

Лучший ответ Сообщение было отмечено BadPawn как решение

Решение

песочница: http://codepen.io/evgeniyproweb/pen/xqZBNg

HTML5
1
2
3
4
5
6
7
8
9
<div id=body_menu>
    <ul>
        <li><a href="index.html">Главная</a></li>
        <li><a href="news.html" class="active">Новостная лента</a></li>
        <li><a href="#">Информация</a></li>
        <li><a href="#">Запись на приём к врачу</a></li>
        <li><a href="#">Контакты</a></li>
    </ul>
</div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#body_menu {
    background-image: -webkit-linear-gradient(45deg,
                        rgba(0, 0, 0, 0) 48%,
                        rgba(255, 255, 255, 1) 20%,
                        rgba(0, 0, 0, 0) 52%
    );
    background-size: 0.4em 0.4em;
    background-color: #DCDCDC;
    text-align: left;
    border-left: 4px solid white;
    border-right: 4px solid white;
    border-bottom: 4px solid white;
    padding: 18px;
}
 
#body_menu a {
    text-decoration: none;
    padding: 1em;
    color: grey;
    font-size: 20px;
}
 
#body_menu a:hover {
    background: white;
    color: black;
}
 
#body_menu .active {
    background: white;
}
 
#body_menu ul {
    list-style: none;
    margin: 0;
    padding-left: 0;
}
 
#body_menu li {
    background: white;
}
#body_menu li {
    display: inline-block;
}

Добавлено через 2 минуты
пишите теги лучше с маленькой буквы, я у вас убрал лишний margin(лишний именно чтобы этот код отдельно рассматривать, а в целом на сайте вам уже виднее нужен он или нет), и добавил класс .active, его просто будете добавлять на страницу с определенным пунктом меню и будет у вас выделяться активное меню белым цветом



1



15 / 0 / 2

Регистрация: 26.08.2016

Сообщений: 62

02.03.2017, 15:36

 [ТС]

6

Evgeniy55, спасибо большое дружище. Всё получилось. Спасибо родной.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

02.03.2017, 15:36

6

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Как изменить цвет визуал студио
  • Как изменить цвет виджетов
  • Как изменить цвет виджета часов на экране андроид
  • Как изменить цвет виджета часов на смартфоне xiaomi
  • Как изменить цвет виджета на айфоне

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии