On most real pages a call to action is an anchor tag with some CSS, not a <button>. Converting those into genuine Button widgets — rather than leaving them as styled text — takes a little detective work.
The obvious cases
A <button> element, an element with a button role, or a link carrying a class containing btn, button or cta is treated as a button straight away.
Detection from CSS alone
The interesting case is a plain <a> that simply looks like a button. Because the conversion happens against a real rendered page, the computed styles can be inspected. An element is treated as a button when all of these hold:
- It is a link, a button element, has a button role, or is a span/div with a pointer cursor.
- It contains no block-level children — a button is single-line content, so anything containing a paragraph, list or nested container is excluded.
- Its text is short (roughly a line’s worth). Long text is prose, not a button label.
- It has a background or a border, a corner radius, and real padding.
- Its display is block, inline-block, flex or inline-flex.
Requiring all of these together is deliberate. Any one signal on its own produces false positives — plenty of non-buttons have a background, and plenty have rounded corners.
What comes across
The label text, the link URL, whether it opens in a new tab, the nofollow flag, text colour, background colour, border and radius, box shadow, the padding (as the button’s own Text Padding control) and the full typography set.
What does not
- Hover states. CSS hover rules cannot be read from a static computed style, so hover colours must be set in Elementor. This is the single most common follow-up task.
- Transitions and animations. Re-apply with Elementor’s own controls.
- Icons inside buttons may need re-picking if the source used an inline SVG rather than an icon class.
When a link should not be a button
Inline text links inside a paragraph stay part of the Text Editor content, with their markup intact. That is correct — turning every link into a Button widget would shred your body copy into fragments.
Tips
- Give calls to action a
buttonorbtnclass in the source; it removes all ambiguity. - Check the href on extracted blocks — if you copied only an inner section, a wrapping anchor may have been left behind.
- Set hover styles immediately after import, while you still remember which buttons are which.