[HTML, Css] - Задай вопрос, получи ответ

Discussion in 'PHP' started by banned, 28 Jun 2007.

Thread Status:
Not open for further replies.
  1. Tw!m4

    Tw!m4 Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    187
    Likes Received:
    19
    Reputations:
    0
    ыы ))) +

    спасибо, я уже нашёл попроще скриптик =о)
     
  2. Metall

    Metall Elder - Старейшина

    Joined:
    4 Jan 2008
    Messages:
    57
    Likes Received:
    10
    Reputations:
    0
    Вот JavaScript:

    HTML:
    <HTML>
    <HEAD>
    
    
    <style>
    <!--
    DIV.clTop{position:absolute; width:170}
    DIV.clSub{position:absolute; left:10; width:170}
    #divCont{position:relative; left:1; top:0; height:600; width:170;}
    A.clMain{font-family:Arial, Verdana, Helvetica, Helv; font-size:10px; text-decoration:none; font-weight:bold; color:202020}
    A.clSubb{font-family:Arial, Verdana, Helvetica, Helv; font-size:10px; text-decoration:none; color:111111}
    #divMain{position:absolute}
    //-->
    </style>
    <script language="JavaScript">
    
    var stayFolded=false
    
    //This is the image that it changes to when it expands.
    var exImg=new Image(); exImg.src='arrow1.gif'
    //This is the image is changes to with it's "unfolded" or something :}
    //Remeber to change the actual images in the page aswell, but remember to
    //keep the name of the image.
    var unImg=new Image(); unImg.src='arrow.gif'
    
    /************************************************************************************
    Browsercheck
    ************************************************************************************/
    var n = (document.layers) ? 1:0;
    var ie = (document.all) ? 1:0;
    var browser=((n || ie) && parseInt(navigator.appVersion)>=4)
    
    /************************************************************************************
    Making cross-browser objects
    ************************************************************************************/
    function makeMenu(obj,nest){
    nest=(!nest) ? '':'document.'+nest+'.'
    this.css=(n) ? eval(nest+'document.'+obj):eval('document.all.'+obj+'.style')
    this.ref=(n) ? eval(nest+'document.'+obj+'.document'):eval('document');
    this.height=n?this.ref.height:eval(obj+'.offsetHeight')
    this.x=(n)? this.css.left:this.css.pixelLeft;this.y=(n)? this.css.top:this.css.pixelTop;
    this.hideIt=b_hideIt; this.showIt=b_showIt; this.vis=b_vis; this.moveIt=b_moveIt
    return this
    }
    function b_showIt(){this.css.visibility="visible"}
    function b_hideIt(){this.css.visibility="hidden"}
    function b_vis(){if(this.css.visibility=="hidden" || this.css.visibility=="hide") return true;}
    function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x; this.css.top=this.y}
    /************************************************************************************
    Initiating the page. Just add to the arrays here to get more menuitems
    and add divs in the page
    ************************************************************************************/
    function init(){
    oTop=new Array()
    oTop[0]=new makeMenu('divTop1','divCont')
    oTop[1]=new makeMenu('divTop2','divCont')
    oTop[2]=new makeMenu('divTop3','divCont')
    oTop[3]=new makeMenu('divTop4','divCont')
    oTop[4]=new makeMenu('divTop5','divCont')
    oTop[5]=new makeMenu('divTop6','divCont')
    oTop[6]=new makeMenu('divTop7','divCont')
    oTop[7]=new makeMenu('divTop8','divCont')
    
    oSub=new Array()
    oSub[0]=new makeMenu('divSub1','divCont.document.divTop1')
    oSub[1]=new makeMenu('divSub2','divCont.document.divTop2')
    oSub[2]=new makeMenu('divSub3','divCont.document.divTop3')
    oSub[3]=new makeMenu('divSub4','divCont.document.divTop4')
    oSub[4]=new makeMenu('divSub5','divCont.document.divTop5')
    oSub[5]=new makeMenu('divSub6','divCont.document.divTop6')
    oSub[6]=new makeMenu('divSub7','divCont.document.divTop7')
    oSub[7]=new makeMenu('divSub8','divCont.document.divTop8')
    
    for(i=0;i<oSub.length;i++){ oSub[i].hideIt() }
    for(i=1;i<oTop.length;i++){ oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height) }
    }
    /************************************************************************************
    This is the function that changes the sub menus to folded or unfolded state.
    ************************************************************************************/
    function menu(num){
    if(browser){
    if(!stayFolded){
    for(i=0;i<oSub.length;i++){
    if(i!=num){
    oSub[i].hideIt()
    oTop[i].ref["imgA"+i].src=unImg.src
    }
    }
    for(i=1;i<oTop.length;i++){
    oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height)
    }
    }
    if(oSub[num].vis()){
    oSub[num].showIt()
    oTop[num].ref["imgA"+num].src=exImg.src
    }else{
    oSub[num].hideIt()
    oTop[num].ref["imgA"+num].src=unImg.src
    }
    for(i=1;i<oTop.length;i++){
    if(!oSub[i-1].vis()) oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height+oSub[i-1].height)
    else oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height)
    }
    }
    }
    //Initiating the menus onload, if it's a 4.x+ browser.
    if(browser) onload=init;
    </script>
    </HEAD>
    <body text="#202020" bgcolor="ivory" link="#0000FF" vlink="#FFA500" alink="#FF0000" marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
    
    
    <!-- МЕНЮ -->
    
    <div id="divCont">
    <div id="divTop1" class="clTop">
    <a href="#" onclick="menu(0); return false" class="clMain">
    <img src="arrow.gif" name="imgA0" width=12 height=12 alt="" border="0">
    Главная</a><br>
    <div id="divSub1" class="clSub">
    <a href="main.html" target="main" class="clSubb">-Старт</a><br>
    </div><br>
    </div>
    
    <div id="divTop2" class="clTop">
    <a href="#" onclick="menu(1); return false" class="clMain">
    <img src="arrow.gif" name="imgA1" width=12 height=12 alt="" border="0">
    HTML</a><br>
    <div id="divSub2" class="clSub">
    <a href="#" class="clSubb">-O HTML</a><br>
    <a href="#" class="clSubb">-DHTML</a><br>
    <a href="html/html_faq.html" target="main" class="clSubb">-FAQ</a><br>
    </div><br>
    </div>
    
    <div id="divTop3" class="clTop">
    <a href="#" onclick="menu(2); return false" class="clMain">
    <img src="arrow.gif" name="imgA2" width=12 height=12 alt="" border="0">
    Скрипты</a><br>
    <div id="divSub3" class="clSub">
    <a href="#" class="clSubb">-JavaScript</a><br>
    <a href="#" class="clSubb">-VBScript</a><br>
    <a href="#" class="clSubb">-FAQ</a><br>
    </div><br>
    </div>
    
    <div id="divTop4" class="clTop">
    <a href="" onclick="menu(3); return false" class="clMain">
    <img src="arrow.gif" name="imgA3" width=12 height=12 alt="" border="0">
    Требования</a><br>
    <div id="divSub4" class="clSub">
    <a href="treb/system.html" target="main" class="clSubb">-Система</a><br>
    <a href="treb/browser.html" target="main" class="clSubb">-Браузер</a><br>
    <a href="treb/graphics.html" target="main" class="clSubb">-Графика</a><br>
    <a href="treb/editor.html" target="main" class="clSubb">-Редакторы</a><br>
    <a href="treb/ftp.html" target="main" class="clSubb">-FTP</a><br>
    <a href="treb/download.html" target="main" class="clSubb">-Скачивание</a><br>
    <a href="treb/dial.html" target="main" class="clSubb">-Дозвон</a><br>
    </div><br>
    </div>
    
    <div id="divTop5" class="clTop">
    <a href="" onclick="menu(4); return false" class="clMain">
    <img src="arrow.gif" name="imgA4" width=12 height=12 alt="" border="0">
    Интернет</a><br>
    <div id="divSub5" class="clSub">
    <a href="internet/hostingrus.html" target="main" class="clSubb">-Хостинг(РФ)</a><br>
    <a href="internet/hostingen.html" target="main" class="clSubb">-Хостинг(МИР)</a><br>
    <a href="internet/redirect.html" target="main" class="clSubb">-Редирект</a><br>
    <a href="internet/extra.html" target="main" class="clSubb">-Еще кое-что</a><br>
    </div><br>
    </div>
    
    <div id="divTop6" class="clTop">
    <a href="" onclick="menu(5); return false" class="clMain">
    <img src="arrow.gif" name="imgA5" width=12 height=12 alt="" border="0">
    Реклама</a><br>
    <div id="divSub6" class="clSub">
    <a href="rating.html" target="main" class="clSubb">-Регистрация</a><br>
    <a href="bannersystem.html" target="main" class="clSubb">-Баннеры</a><br>
    <a href="#" target="main" class="clSubb">-Раскрутка 1</a><br>
    <a href="#" target="main" class="clSubb">-Раскрутка 2</a><br>
    </div><br>
    </div>
    
    <div id="divTop7" class="clTop">
    <a href="" onclick="menu(6); return false" class="clMain">
    <img src="arrow.gif" name="imgA6" width=12 height=12 alt="" border="0">
    Деньги</a><br>
    <div id="divSub7" class="clSub">
    <a href="#" class="clSubb">-Спонсоры</a><br>
    <a href="#" class="clSubb">-WebMoney</a><br>
    <a href="#" class="clSubb">-Кредитки</a><br>
    </div><br>
    </div>
    
    <div id="divTop8" class="clTop">
    <a href="" onclick="menu(7); return false" class="clMain">
    <img src="arrow.gif" name="imgA7" width=12 height=12 alt="" border="0">
    Прочее</a><br>
    <div id="divSub8" class="clSub">
    <a href="#" class="clSubb">-Гостевая книга</a><br>
    <a href="#" class="clSubb">-Голосование</a><br>
    <a href="#" class="clSubb">-Ссылки</a><br>
    <a href="#" class="clSubb">-Написать</a><br>
    </div><br>
    </div>
    
    </div>
    
    </HEAD>
    </HTML>
     
    #202 Metall, 16 Jan 2008
    Last edited: 16 Jan 2008
  3. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Metall, мда....такой не читабельный и огромный скрипт стыдно...
     
    1 person likes this.
  4. Metall

    Metall Elder - Старейшина

    Joined:
    4 Jan 2008
    Messages:
    57
    Likes Received:
    10
    Reputations:
    0
    Скрипт не огромный. Он вполне нормален. Меню на Java Script’е все такие.
     
    #204 Metall, 16 Jan 2008
    Last edited: 16 Jan 2008
    4 people like this.
  5. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Не соглашусь...это не так.
    Ты не обижайся, но Isis прав!
    Где - то пример был найду выложу!
     
    #205 De-visible, 16 Jan 2008
    Last edited: 16 Jan 2008
  6. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Сам недавно думал над этим)) Это вообще по идее можно несколькими способами реализовать. Вот мой.
    PHP:
    <script>
     function 
    submenu(idhtml) {
         
    document.getElementById(id).innerHTML html;
     }
     
    </script>
     <a href="#" onclick="submenu('id1', '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;submenu(1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;submenu(2)')">menu(1)</a>
     <div id="id1"></div>
     <a href="#" onclick="submenu('id2', '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;submenu(3)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;submenu(4)')">menu(2)</a>
     <div id="id2"></div>
    P.S. Как быть с фреймом не знаю.
     
    #206 NOmeR1, 16 Jan 2008
    Last edited: 16 Jan 2008
    1 person likes this.
  7. FeraS

    FeraS Elder - Старейшина

    Joined:
    19 Jan 2007
    Messages:
    555
    Likes Received:
    420
    Reputations:
    76
    NOmeR1
    А мошт проще в Sothink DHTML Menu сделать?)
     
  8. Helios

    Helios Elder - Старейшина

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Тогда уж на http://dhtml-menu.com понравившееся взять, только придется немного подумать, чтоб надпись trial version убрать.
     
  9. Tw!m4

    Tw!m4 Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    187
    Likes Received:
    19
    Reputations:
    0
    а вот как я сделал:

    Code:
    .....
    
    	  <script type="text/javascript" charset="utf-8">  
    	  function submenudisplay(submenuid)
        	  { submenu = document.getElementById(submenuid); 
    		     if (submenu.style.display == "block") { submenu.style.display = "none"; } 
    			 else { submenu.style.display = "block"; } 
    	      } 
    	  </script>
       </head>
    <body>
    
    <table width="210" height="50" border="0" align="left" class="navi">
      <tr>
        <td><br><a href="../main.html" target="mainFrame">о компании</a></td>
      </tr>
      <tr>
        <td>
    	<div class="link">
    	   <a href="../exkurs.html" target="mainFrame" onClick="submenudisplay('exkurs'); return(false);">экскурсии</a>
    
    	      <div class="submenu" id="exkurs">
    		     <div class="link">
         			 <a href="../submenus/austria.html" target="mainFrame">- Австрия</a>
    			 </div>
    	         <div class="link">
         			 <a href="../submenus/tschech.html" target="mainFrame">- Чехия и Словакия</a>
    			 </div>
    			 <div class="link">
    
         			 <a href="../submenus/ungarn.html" target="mainFrame">- Венгрия</a>
    			 </div>
    			 <div class="link">
         			 <a href="../submenus/italy.html" target="mainFrame">- Италия</a>
    			 </div>
    			 <div class="link">
         			 <a href="../submenus/germany.html" target="mainFrame">- Германия</a>
    
    			 </div>
    		  </div>
    	</div>
    			 </td>
      </tr>
      <tr>
        <td><a href="../adjust.html" target="mainFrame">трансферы</a></td>
      </tr>
    
      <tr>
        <td><a href="../contact.html" target="mainFrame">контакт</a></td>
      </tr>
    </table>
    .......
    плюс в цсс вписал вот что:

    Code:
    div.submenu
     {
     margin-left: 10px;
     display: none;
     }
    
    div.link div.link a 
    {
     text-decoration: none;
     font-size: 9pt;
     color: #026ba1;
     }
     
  10. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    PHP:
    preg_match_all('|<form.*([\.\-_A-Za-z0-9]+?)@([\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,}).*</form>|U'$text$out);
    это регулярное выражение выбирает все email - если они находятся в форме

    как написать обратное выражение - выбрать все email- если они не в форме?
     
  11. dinar_007

    dinar_007 Мадемуазель

    Joined:
    18 Jan 2005
    Messages:
    1,019
    Likes Received:
    770
    Reputations:
    97
    До формы:
    PHP:
    preg_match_all('|.*([\.\-_A-Za-z0-9]+?)@([\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,}).*<form.*|U'$text$out);
    После формы:
    PHP:
    preg_match_all('|.*</form>([\.\-_A-Za-z0-9]+?)@([\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,}).*|U'$text$out);
    P.S. Для php есть отдельная тема...
    [offtop]
    P.P.S. Корвин. а ты не Ваня случаем? =)
    [/offtop]
     
  12. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    спасибо,просто я не нашол темы "php:задаем вопросы, получаем ответы", вот и написал тут
     
  13. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    не, я Леша
     
  14. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Помогите с CSS для тега <table>
    Вообщем нужно прописать параметры стиля для таблицы (может и ещё для чего)
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>CMS</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    </head>
    
    <body>
    <table align="center">
      <tr>
        <th scope="col"><div id="headerArea"> <span class="logo1"><a href="http://forum.antichat.ru"><img src="images/none.gif" width="280" height="36"/></a></span></div></th>
        <th scope="col"><div id="headerArea"> <span class="logo2"><a href="http://forum.antichat.ru"><img src="images/none.gif" width="160" height="36"/></a></span></div></th>
        <th scope="col"><div id="headerArea"> <span class="logo3"><a href="http://forum.antichat.ru"><img src="images/none.gif" width="192" height="36"/></a></span></div></th>
      </tr>
    </table>
    </body>
    </html>
    
    css:
    Code:
    body {
    	margin-left: 0px;
    	margin-top: 0px;
    }
    
    #headerArea span.logo1 a
    	{
    	background: url(images/logo1.png);
    	}
    	
    #headerArea span.logo1 a:hover 
    {
    	background: url(images/logo1_light.png);   
    }
    
    #headerArea span.logo2 a
    	{
    	background: url(images/logo2.png);
    	}
    	
    #headerArea span.logo2 a:hover 
    {
    	background: url(images/logo2_light.png);   
    }
    
    #headerArea span.logo3 a
    	{
    	background: url(images/logo3.png);
    
    	}
    	
    #headerArea span.logo3 a:hover 
    {
    	background: url(images/logo3_light.png);   
    }
    table {
    	border-top-style: none;
    	border-right-style: none;
    	border-bottom-style: none;
    	border-left-style: none;
    	border: 0;
    	border-top-color: #000000;
    --> что ёще?
    }
    
    Смысл кода реализовать смену картинок (фона ячейки в таблице) после наведения курсора, посредством CSS - ну с этим всё ок. Только вот разница в отображении в IE (боле-менее норм.) и Опере (неправильно фон позицируется в ячейках), как исправить?

    P.S. none.gif - прозрачная гифка размером 1х1 пиксель (использовал, чтоб размеры ячеек таблицы соответсвовали размеру картинок для фона).
     
  15. Helios

    Helios Elder - Старейшина

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Во-первых параметр id для каждого элемента страницы должен быть уникальным, иначе теряется его смысл, поэтому нужно заменить #headerArea на .headerArea, и соответсвенно, использовать как класс.

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

    Теперь в стилях для нужного элемента указываешь:
    Code:
    a
    {
      background: url(image.gif) no-repeat top left;
    }
    a:hover
    {
      background-position: bottom left;
    }
    
    И третье: в твоем случае фон нужно задавать не для
    Code:
    #headerArea span.logo3 a
    а для
    Code:
    #headerArea span.logo3 a img
     
    1 person likes this.
  16. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    не проще сделать onMouseOver onMouseOut и onClick? поисчи эти функции в яндексе,это намного удобнее
     
  17. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3


    эта хрень не сработает если на страничке больше одной формы, проверено
     
  18. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Может и легче, но я хочу через CSS сделать сие дело...

    Up: вот сделал как рекомендовал Helios
    Code:
    <body>
    <table align="center" id="1" cellspacing="0" cellpadding="0">
      <tr>
        <th><span class="logo1"><a href="http://forum.antichat.ru"><img src="images/none.gif" width="285" height="36"/></a></span></th>
        <th><span class="logo2"><a href="http://forum.antichat.ru"><img src="images/none.gif" width="178" height="36"/></a></span></th>
        <th><span class="logo3"><a href="http://forum.antichat.ru"><img src="images/none.gif" width="205" height="36"/></a></span></th>
      </tr>
    </table>
    </body>
    
    style.css
    Code:
    body {
    	margin-left: 0px;
    	margin-top: 0px;
    	padding-top: 0px;
    	padding-right: 0px;
    	padding-bottom: 0px;
    	padding-left: 0px;
    	margin: 0;
    }
    
    a
    {
      background: top left;
    }
    a:hover
    {
      background-position: bottom left;
    }
    
    .logo1 a img 
    	{
    	background: url(images/logo_1.png);
    	}
    	
    .logo1 a:hover img
    {
    	background-position: bottom left;	 
    }
    
    .logo2 a img 
    	{
    	background: url(images/logo_2.png);
    	}
    	
    .logo2 a:hover img
    {
    	background-position: bottom left;	 
    }
    
    .logo3 a img 
    	{
    	background: url(images/logo_3.png);
    	}
    	
    .logo3 a:hover img
    {
    	background-position: bottom left;	 
    }
    
    Т.е. фоновая картинка в два раза больше ячейки таблицы по высоте, в начале отображается верхняя часть, при наведении курсора - нижняя. В принципе всё работает ок! Но в IE ячейки таблицы обраблены рамкой синего цвета, в Опере такого нету - там всё норм. В чём трабл?
     
    #218 -=lebed=-, 18 Jan 2008
    Last edited: 18 Jan 2008
    1 person likes this.
  19. Helios

    Helios Elder - Старейшина

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Многие люди из морально-этических соображений выключают JavaScript у себя в браузере, поэтому эти функции работать не будут. Людей же, отрубающих CSS практически нет, поэтому это будет работать везде.
     
  20. x88x

    x88x Elder - Старейшина

    Joined:
    27 Nov 2007
    Messages:
    208
    Likes Received:
    119
    Reputations:
    16
    ну коль ЦСС, то попробуй z-index.
     
    1 person likes this.
Thread Status:
Not open for further replies.