3 ms·
I guess if it doesn't update the url, it's a button. If it changes the url, it should be a link. At least that's how I've always done it.
by ervine 11mo ago
I guess if it doesn't update the url, it's a button.
If it changes the url, it should be a link. At least that's how I've always done it.
- cassepipe 11mo agoIs is not okay to wrap a link inside a button ? I guess not Which elements are allowed to wrap which is unclear to me
- stevula 11mo agoWhat is the use case? It’s hard for me to think of a reason you’d want to wrap a link in a button. If you want to navigate, use an anchor. If you want to trigger JS logic, use a button with onclick handler. If you want to navigate while doing some side effect like an API call, use an anchor with onclick handler (and don’t prevent default).
- cferdinandi 11mo agoLiterally absolutely never ever do this.
- Shog9 11mo agoFWIW, you can generally figure out what's allowed fairly quickly by checking the content model for a given element[1]. Some browsers might be more or less restrictive, but for normal usage this'll be more than enough to avoid unexpected behavior. [1]: https://html.spec.whatwg.org/#the-button-element:concept-element-content-model https://html.spec.whatwg.org/#the-button-element:concept-ele...
- phatskat 11mo agoMDN includes a “Permitted Content” section for elements, eg for button it says > Phrasing content but there must be no Interactive content. If the <button> is the first child of a customizable select element, then it may also contain zero or one <selectedcontent> element. “Ok, but what constitutes ‘phrasing content’ or ‘interactive content’?” you might ask. Those terms are links that give a very good overview of their constituent elements.