Firefox-де жұмыс істемейтін түймешіктің ішіндегі сілтеме

Менде түйменің ішінде екі сілтеме бар, бірақ сілтемелер Firefox-да жұмыс істемейді.

<button class="btn login">
    Log In 
          | 
Sign Up
</button>

Мен JavaScript жұмысын тексердім және қайта бағыттадым - тіпті бұл жұмыс істемейді.

26
мама мия .. мұнда мен қайтадан барамын ... неге сіз бұл белгіге неге рұқсат бердіңіз ... :)
қосылды автор naveen, көзі
Жоқ - сізде «интерактивті» элементтерді басқада болмайды. Кейде кейбір браузерлерде жұмыс істей алады, бірақ бұл дұрыс емес.
қосылды автор Pointy, көзі

7 жауаптар

Бұл жұмыс істемейді, себебі рұқсат етілмеген HTML5 бойынша:

Мазмұн үлгісі: Дыбыс мазмұны, бірақ интерактивті болмауы керек   мазмұнды ұрпақ.

Interactive content means any of the following elements:

аудио (егер басқару элементтері атрибуты болса) батырмаларының деректері ендіріледі   iframe img (егер usemap төлсипаты бар болса) енгізу (егер түр   төлсипат жасырын күйде жоқ) keygen label мәзірі (егер түр   төлсипат құралдар тақтасының күйінде) нысан (usemap төлсипаты болса)   present) мәтіндік бейнелерді таңдау (егер басқару элементтері бар болса)

Егер ол кейбір браузерлерде жұмыс істеп жатса, олар тек тырысады дұрыс емес түзетулермен жақсы ойнайды және маңызды some сұрыптау нәтижесін береді.

Басқаша айтқанда, HTML-іңізді қайта жазыңыз, бұл шиеленіс. Егер сілтемелердің түймешіктерде болғанын қаласаңыз, оларды div элементіне және сол сияқты көрінетін мәнерге салыңыз, олар үшін семантикалық қате элементтерді теріс пайдаланудың орнына.

46
қосылды
@deji дұрыс емес - интерактивті контент ешқашан рұқсат етілмеген. Мәтіндер мен суреттер интерактивті емес.
қосылды автор Niels Keurentjes, көзі
<button> бұрынғыдай жұмыс істеген нәрсені өзгерткенде, HTML-тің 5-ші ішіндегі суреттер мен мәтіндерді (және сілтемелерді) қолдайтын type = түймесімен бірге <input> s-ге балама ретінде шыққанын түсіндіріп, мұқият болыңыз.
қосылды автор Deji, көзі

is not allowed inside <button>

Дыбыс мазмұны, бірақ интерактивті мазмұнды ұрпақ болмауы керек.

is interactive content (regardless of whether it has an href apparently, but yours do). Thus you can't depend on having the links as children of the button and what Firefox is doing is correct. Use another element to contain the s

11
қосылды

Менде түйменің ішінде екі сілтеме бар, бірақ [...]

«Иә, бірақ сол жерде сізді тоқтатамын ...»

http://www.w3.org/TR/html5/forms.html#the-button-element:

4.10.8 The button element Content model: Phrasing content, but there must be no interactive content descendant.

--->

Interactive content is content that is specifically intended for user interaction. ⇒ a, audio […]

Осылайша, егер сіз жарамсыз HTML жазсаңыз, күтпеген мінез-құлық күтіңіз ;-)

6
қосылды
+1: бұл сөйлемді «күткендей күтпей» аяқтадым :)
қосылды автор naveen, көзі

Мұны түйме элементінде қоса аласыз.

onclick = «window.location.href = '/ link1'»

Мысал

<button onclick = «window.location.href = '/ login'»> Кіру </түймешігі>

4
қосылды

Немесе түймені якорь ішіне қоюға болады, ол екі түрлі түйме болатындықтан, дәл солай көрінбейді, бірақ бұл сілтеме ретінде әрекет ететін түйме болады. Ол әлі де техникалық тұрғыдан дұрыс емес, бірақ істейді FireFox-де жұмыс істейді.


  <button class="btn login">
    Log In </button>  

  <button class="btn login">
    Sign Up </button> 
3
қосылды

Түймешік үшін javascript: window.location пайдаланыңыз.

<div class="product">
<button onClick="javascript: window.location='/checkout/outfield-
banner/1'">Add to Cart</button>
</div>
1
қосылды

Бұл жарамсыз HTML,

Мұның орнына бір нәрсе жасаңыз:



0
қосылды
бұрын ұсынылған Niels
қосылды автор John Dvorak, көзі